JP6079293B2 - ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法 - Google Patents

ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法 Download PDF

Info

Publication number
JP6079293B2
JP6079293B2 JP2013032932A JP2013032932A JP6079293B2 JP 6079293 B2 JP6079293 B2 JP 6079293B2 JP 2013032932 A JP2013032932 A JP 2013032932A JP 2013032932 A JP2013032932 A JP 2013032932A JP 6079293 B2 JP6079293 B2 JP 6079293B2
Authority
JP
Japan
Prior art keywords
joint
robot
line segment
arm
determination unit
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
JP2013032932A
Other languages
English (en)
Other versions
JP2014161930A (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.)
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 JP2013032932A priority Critical patent/JP6079293B2/ja
Publication of JP2014161930A publication Critical patent/JP2014161930A/ja
Application granted granted Critical
Publication of JP6079293B2 publication Critical patent/JP6079293B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法等に関係する。
工場の製品製造ラインでは、6自由度の産業用ロボットを用いて、組立加工作業や検査計測作業の自動化が行われている。しかし、6自由度の産業用ロボットでは、作業場に置かれた障害物等を回避して、アームを所定の場所に移動させることができない場合もある。
一方で、人間の腕の自由度は7自由度であり、腕を所定の場所に動かすために必要となる6自由度の他に冗長自由度がある。人間の腕にはこの冗長自由度があるため、同じ作業を様々な腕の向きで達成することができる。これにより、人間は楽な姿勢を取りつつ、腕を動かすことができる。
そこで、人間の腕と同じように、7自由度を有する冗長自由度ロボットを産業用ロボットとして用いることが考えられている。これらの冗長自由度ロボットの制御方式に関する発明としては特許文献1に記載される従来技術がある。
特開平6−143172号公報
冗長自由度ロボットでは、肩とアームの先端との所定の位置関係を実現する姿勢が無数にある。そのため、ロボットのアームが実際にどのような姿勢を取ればよいか特定することが困難であるという問題がある。
本発明の幾つかの態様によれば、冗長自由度を有するロボットのアームの先端を所定の位置に移動させる際に、ロボットの各関節位置を決定することができるロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法等を提供することができる。
本発明の一態様は、ロボットのアームの関節位置を決定する関節位置決定部と、前記関節位置を決定する際に用いる基準方向を取得する基準方向取得部と、決定された前記ロボットの前記アームの前記関節位置に基づいて、前記アームの関節角を求めて、前記ロボットを制御するロボット制御部と、を含み、前記関節位置決定部は、前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定し、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求めるロボット制御システムに関係する。
本発明の一態様では、まず基準方向取得部が基準方向を取得する。そして、関節位置決定部が、アーム上において第1の位置と第2の位置との間の第3の位置にある関節の関節位置を決定する際に、第1の位置と第2の位置とを結ぶ第1の線分を含む平面が向く方向を基準方向に基づいて特定する。次に、関節位置決定部は、特定した平面上において第1の線分から所与の距離にある位置を第3の位置として求める。そして、ロボット制御部が、決定されたロボットのアームの関節位置に基づいて、関節角を求めて、ロボットを制御する。
よって、冗長自由度を有するロボットのアームを所定の位置に移動させる際に、ロボットの各関節位置を決定することが可能となる。
また、本発明の一態様では、前記関節位置決定部は、前記第1の位置と前記第2の位置と前記第3の位置とを含む前記平面に直交する方向が、前記基準方向に対して平行な方向となるように、前記平面の向く方向を特定してもよい。
これにより、第1の位置と第2の位置と第3の位置とを含む平面が、特定された方向を向くような位置に、第3の位置があると特定すること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記第1の線分の長さと、前記第1の位置と前記第3の位置とを結ぶ第2の線分の長さと、前記第2の位置と前記第3の位置とを結ぶ第3の線分の長さとに基づいて、前記第3の位置と前記第1の線分上の第4の位置とを結ぶ線分であって、前記第1の線分に対して垂直な第4の線分の長さを求め、前記第4の線分の長さに基づいて、前記第3の位置を求めてもよい。
これにより、第1の線分から第3の位置までの距離を求めて、求めた距離に基づいて、第3の位置を求めること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記第4の線分の長さに基づいて、前記第1の位置と前記第4の位置とを結ぶ第5の線分の長さを求め、前記第5の線分の長さに基づいて前記第4の位置を求め、前記第4の位置と前記第4の線分の長さに基づいて、前記第3の位置を求めてもよい。
これにより、第1の線分から第3の位置への方向を特定し、求めた方向に基づいて、第3の位置を求めること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記第3の位置と前記第1の線分上の第4の位置とを結ぶ線分であって、前記第1の線分に対して垂直な第4の線分を表すベクトルと、前記第1の位置と前記第4の位置とを結ぶ第5の線分を表すベクトルとの外積と内積に基づいて、前記第3の位置を求めてもよい。
これにより、二つのベクトルの外積と内積を表す連立方程式を解くことにより、第3の位置を求めること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記第4の線分を表すベクトルと前記第5の線分を表すベクトルとの外積の方向が前記基準方向と平行であることと、前記第4の線分を表すベクトルと前記第5の線分を表すベクトルとの内積がゼロになることに基づいて、前記第3の位置を求めてもよい。
これにより、二つの連立方程式の解を求めることにより、第4の位置から第3の位置へのベクトルを求め、求めた第4の位置から第3の位置へのベクトルに基づいて、第3の位置を特定すること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記基準方向を前記第1の線分周りで所与の角度だけ回転させ、回転後の前記第3の位置を求めてもよい。
これにより、基準方向に基づいて求めた第3の位置を調整したい場合に、基準方向を再度指定せずに、第3の位置を調整すること等が可能になる。
また、本発明の一態様では、前記第2の位置は、前記ロボットの前記アームのエンドポイント位置であり、前記第3の位置は、双腕若しくは単腕ロボットの肘関節位置であってもよい。
これにより、ロボットのハンドの目標移動位置を第2の位置とし、冗長自由度を実現する関節の関節位置を第3の位置として設定することが可能になる。
また、本発明の一態様では、前記第1の位置は、前記ロボットの肩関節が回転しても位置が不変な位置であってもよい。
これにより、ロボットのアームの所望の位置に第1の位置を設定することが可能になる。
また、本発明の一態様では、前記ロボットの前記アームには、肘関節と、肩関節と、所定軸周りで回転する上腕節と、が設けられてもよい。
これにより、冗長自由度ロボットを実現すること等が可能になる。
また、本発明の一態様では、前記関節位置決定部は、前記ロボットの前記アームにおいて、前記第3の位置にある関節以外の関節の位置を逆運動学により求めてもよい。
これにより、全ての関節の位置を求めること等が可能になる。
また、本発明の他の態様では、前記ロボット制御システムを含むロボットに関係する。
また、本発明の他の態様では、ロボットのアームの関節位置を決定する際に用いる基準方向の入力を受け付ける入力受付部と、前記関節位置を決定する関節位置決定部と、前記ロボットを制御するロボット制御部に、前記関節位置決定部により決定された前記関節位置を出力する関節位置出力部と、を含み、前記関節位置決定部は、前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定し、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求めることを特徴とする教示装置に関係する。
これにより、教示装置により決定された関節位置に基づいて、ロボット制御部がロボットの各部を動作させることが可能になる。
また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラムに関係する。
また、本発明の他の態様では、ロボットのアームの関節位置を決定する際に用いる基準方向を取得する処理を行い、前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定する処理を行い、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求める処理を行い、前記ロボットの前記アームの前記関節位置を決定する処理を行い、決定された前記ロボットの前記アームの前記関節位置に基づいて、前記ロボットを制御する処理を行うロボット制御方法に関係する。
本実施形態のシステム構成例。 図2(A)、図2(B)は、ロボットの一例。 本実施形態の冗長自由度ロボットのアームの一例。 本実施形態の処理の流れを説明するフローチャート。 各リンク長と各点間の距離の説明図。 第1の線分から第3の位置までの距離と基準方向の説明図。 第3の位置を調整する処理の説明図。 基準方向の特定処理の説明図。 図9(A)、図9(B)は、教示装置の構成例。
以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次にシステム構成例について説明する。そして、フローチャート等を用いて本実施形態で行う処理の詳細について説明する。最後に、本実施形態の手法についてまとめる。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.概要
工場の製品製造ラインでは、6自由度の産業用ロボットを用いて、組立加工作業や検査計測作業の自動化が行われている。
一方で、人間の腕の自由度は7自由度であり、腕を所定の場所に動かすために必要となる6自由度の他に冗長自由度がある。人間の腕にはこの冗長自由度があるため、例えば壁に手のひらをぴったり付けた状態で、肩を動かさずに肘を動かしたり、机の引き出しの奥や棚の奥などの狭い場所に置かれた物をとる際に、引き出しや棚に当たらないように手を伸ばして物を取ったりすることができる。つまり、人間は冗長自由度を得たがために、同じ作業を様々な腕の向きで達成することができる。
逆に、人間の腕に冗長自由度がなければ、所定の位置に腕を持っていくために、決まった姿勢しか取ることができず、楽な姿勢を取りつつ、腕を動かすことができない。このことは、産業用ロボットにおいても同様である。
そこで本実施形態では、7自由度を有する冗長自由度ロボットを産業用ロボットとして用いる。これにより、人間の腕と同じように、例えば狭い場所でも周囲の障害物を避けながら作業をすること等ができるようになる。
また、ロボットには、構造的にアームを制御できなくなる特異点があることが知られている。具体的に、特異点とは、逆運動学計算の解が得られない状態のことを言う。特異点の例としては、ロボットのアームが伸びきった姿勢や、2つ以上の軸が一直線に並んだ姿勢などがある。
さらに、ロボットの自由度数(関節数)が多くなれば多くなる程、特異点になる姿勢の数も増える。しかし、冗長自由度ロボットは自由度に余裕があるため、この特異点となる姿勢を避けて動作することが容易である。
このように、冗長自由度ロボットは、肩の位置とアームの先端位置を固定した状態でも、その間に設けられた肘関節の位置を移動させることができる。言い換えれば、冗長自由度ロボットでは、肩とアームの先端との所定の位置関係を実現する姿勢が無数にある。そのため、逆運動学方程式の解が一意に定まらず、ロボットのアームが実際にどのような姿勢を取ればよいか特定することが困難であるという問題がある。
このような問題に対して、前述した特許文献1において示される発明では、7自由度マニピュレーターの各関節のうち、いずれか一つの関節を指定して、それ以外の6つの関節を手先運動制御用関節として割り当てる。そして、冗長自由度を決定する際には、マニピュレーター先端の目標位置姿勢と、パラメーター化した先に指定した関節角とを用いて逆運動学方程式を解き、その計算で得られた各関節角度等を用いて評価関数のポテンシャル値を求め評価する。その評価を満足したとき、パラメーター化した先に指定した関節角を決定する。
このように、前述した特許文献1において示される発明では、マニピュレーターのジョイントを制約し、パラメーター化することで擬似的な6自由度マニピュレーターを構成して逆運動学計算を行う。
しかし、この際に、どのジョイントを制約するのが最適かを決定することは困難であり、最適でないジョイントに制約をかけてしまうケースが発生する。これによって、逆運動学方程式の解が求まらないケースや、逆運動学方程式の解が求まったとしても計算量が増大してしまうケースが発生する。さらに、最適なジョイント制約をかけることができたとしても、そのパラメーター化を最適に行うことも困難であり、最適でないジョイントに制約をかけてしまうケースと同様の課題が発生する。
そこで、本実施形態では、冗長自由度を有するロボットのアームを所定の位置に移動させる際に、ロボットの各関節位置を決定することができるロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法等を提供する。
また、冗長自由度ロボットにおける逆運動学方程式の解を一意に定めるためには、制約条件を与える必要があるが、本実施形態では、ユーザーが指定しやすい方法で制約条件を与える。
さらに、本実施形態では、制約条件を与えた際に、逆運動学方程式の解が求まらないケースや、逆運動学方程式の解が求まったとしても計算量が増大してしまうケース等を回避することができる。
2.システム構成例
次に、図1に本実施形態のロボット制御システム100の構成例を示す。ロボット制御システム100は、基準方向取得部110と、関節位置決定部130と、ロボット制御部150と、を含む。なお、ロボット制御システム100は、図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
次に各部で行われる処理について説明する。
まず、基準方向取得部110は、関節位置を決定する際に用いる基準方向を取得する。例えば、基準方向取得部110は、ユーザーからの入力を受け付けるI/F部や通信部であってもよいし、あらかじめ設定された基準方向を記憶する記憶部であってもよい。
次に、関節位置決定部130は、ロボット200のアーム210の関節位置を決定する。関節位置決定部130の詳細な動作については、後述する。
そして、ロボット制御部150は、決定されたロボット200のアーム210の関節位置に基づいて、関節角を求めて、ロボット200を制御する。
なお、関節位置決定部130及びロボット制御部150の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。
また、ロボット200は、例えば後述する図2(A)及び図2(B)に示すようなアーム210及びハンド220を有し、ロボット制御部150から取得されるロボット制御コマンドに従って動作する。
ここで、アーム210とは、ロボット200のパーツであって、一つ以上の関節を含む可動パーツのことをいう。
また、アーム210のエンドポイントとは、アーム210の先端部分のポイントであって、ロボット200のハンド220以外の他の部分と接続されていない部分のことをいう。
さらに、ハンド(把持部)220とは、ワークを把持したり、持ち上げたり、吊り上げたり、吸着させたり、ワークに加工を施したりするためにアーム210のエンドポイントに取り付ける部品のことをいう。ハンド220は、フックであってもよいし、吸盤等であってもよい。なお、アームのエンドポイントの位置は、ハンドの位置としてもよい。さらに、1本のアームに対して、複数のハンドを設けても良い。
例えば図2(A)のロボットは、ロボット本体200(ロボット)とロボット制御システム100とが別体に構成されている。しかし、本実施形態のロボットは図2(A)の構成に限定されず、図2(B)のようにロボット本体200とロボット制御システム100とが一体に構成されていてもよい。具体的には図2(B)に示したように、ロボット200は、ロボット本体(アーム210及びハンド220を有する)及びロボット本体を支えるベースユニット部を有し、当該ベースユニット部にロボット制御システム100が格納されるものであってもよい。図2(B)のロボット200には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図2(A)は単腕型の例であるが、ロボット200は図2(B)に示すように双腕型等の多腕型のロボットであってもよい。また、ロボット200は、人手により移動させられるものであってもよいし、車輪を駆動するモーターを設け、当該モーターをロボット制御システム100により制御することにより、移動させられるものであってもよい。また、ロボット制御システム100は、図2(B)のようにロボット200の下に設けられたベースユニット部に設けられるとは限られない。
さらに、本実施形態で用いる7自由度のアーム一本の一例を図3に示す。
まず、アームの付け根位置PSにある接地面SAに肩部SHが接続されており、肩部SHには第1の関節部(第1の肩関節)JO1が設けられている。
そして、第1の関節部JO1から伸びるリンクは、第1の位置P1で直角に曲がり、第2の関節部(第2の肩関節)JO2に接続されている。
さらに、第2の関節部JO2から伸びるリンクも直角に曲がり、第3の関節部(上腕節)JO3に接続されている。そして、第3の関節部JO3から伸びるリンクは第4の関節部(肘関節)JO4に接続されている。以下では、第1の位置P1から第4の関節部JO4までを上腕節UAと呼ぶ。
また、リンクにより、第4の関節部JO4は第5の関節部JO5に接続されており、第5の関節部JO5は第6の関節部JO6に接続されている。以下では、第3の位置P3から第2の位置P2までを前腕部BAと呼ぶ。
そして、リンクにより、第6の関節部JO6は第7の関節部JO7に接続されており、第7の関節部JO7はハンドHDに接続されている。また、ベクトルTPは、ロボットのハンドの目標位置姿勢を表している。なお、第6の関節部からハンドHDまでの機構と第5の関節部は、以下の説明に不要なため、図5〜図8では記載を省略する。
3.処理の詳細
まず、図4のフローチャートを用いて、図3に示すロボットアームを制御する処理の全体の流れについて説明する。そして、その後に図5〜図8を用いて、処理の詳細について説明する。
まず、ロボット制御システムは、ロボットのハンドHDの目標位置姿勢TPを取得する(S101)。
次に、ロボットのアームの第2の位置P2を算出する(S102)。なお、第2の位置P2は、第1の関節部JO1〜第4の関節部JO4の関節角によって一意に定まり、第5の関節部JO5〜第7の関節部JO7の関節角及びハンドHDの動きによっては変化しない。よって、前述したように、以下では、第5の関節部JO5〜第7の関節部JO7の関節角及びハンドHDの動きは考慮しない。
そして、基準方向取得部110が基準方向を取得する(S103)。例えば、ユーザーにより入力された方向を基準方向として取得する。また、他にも、第1の位置P1と第2の位置P2とアームの付け根位置PSとを頂点とする三角形に直交するベクトルSDの方向を基準方向として計算する等してもよい(S103)。その場合の処理については、後に図8を用いて詳述する。
次に、第1の位置P1と第2の位置P2と第3の位置P3とを頂点とする三角形が、ベクトルSDに直交するように、関節位置決定部130が第3の位置P3の位置を決定する(S104)。なお、本処理については、後に図5及び図6を用いて詳述する。
さらに、必要に応じて、関節位置決定部130が、第1の位置P1と第4の位置P4とを結ぶ線分を回転軸として、第3の位置P3を回転移動させ、第3の位置P3の微調整を行う(S105)。なお、本処理については、後に図7を用いて詳述する。
そして、ロボット制御部150が、求めたアームの付け根位置PSと第1の位置P1と第2の位置P2と第3の位置PS3との位置関係を実現する時の、第1の関節部JO1〜第4の関節部JO4の目標回転角度を計算する(S106)。同様に、ロボット制御部150が、ロボットのハンドHDの目標位置姿勢TP及び第2の位置P2を実現する時の第5の関節部JO5〜第7の関節部JO7の目標回転角度を計算する(S107)。
最後に、ロボット200が、第1の関節部JO1〜第7の関節部JO7について、現在の回転角度から目標回転角度へと変化させ、ロボットのハンドHDの目標位置姿勢TPを実現する(S108)。以上で、処理を終了する。
次に、ステップS104の処理の詳細を説明する。本ステップでは、図5に太線で示すように、第1の位置P1と第2の位置P2と第3の位置P3とを頂点とする三角形を考える。この時、第1の位置P1と第2の位置P2は、確定済みであるが、第3の位置P3は未確定であり、本ステップでは最終的にこの第3の位置P3を決定する。
まず、第1の位置P1と第2の位置P2を結ぶ第1の線分から第3の位置P3までの距離を求める。そのために、第1の位置P1と第2の位置P2と第3の位置P3とを頂点とする三角形の各辺の長さを求める。ここで、図5に示す各リンク長(l〜l)は既知である。よって、三平方の定理に基づいて、リンク長l〜lから第1の線分の長さLが求められ、リンク長l〜lから、第1の位置P1と第3の位置P3を結ぶ第2の線分の長さLが求められる。また、第2の位置P2と第3の位置P3を結ぶ第3の線分の長さLは、リンク長lと等しい。
次に、図6に示すように、第3の位置P3から第1の線分に下ろした垂線と第1の線分との交点を第4の位置P4とし、第3の位置P3と第4の位置P4を結ぶ第4の線分の長さをLとする。すなわち、第4の線分の長さLは、第1の線分から第3の位置P3までの距離である。この時、第4の線分の長さLは、ヘロンの公式を変形した下式(1)により求められる。なお、式(1)中の定数sは、下式(2)により求められる値である。さらに、第1の位置P1と第4の位置P4を結ぶ第5の線分の長さをLとする。
Figure 0006079293
Figure 0006079293
ここまでで、第1の線分から第3の位置P3までの距離Lを求めることができた。従って、第3の位置P3が第4の位置P4から見てどの方向に位置するかが分かれば、第3の位置P3を一意に特定することができる。言い換えれば、第4の位置P4から第3の位置P3へのベクトル(第4の線分を表すベクトル)を求めることができればよい。
そこで、図6に示すBS1〜BS3を基底とするベクトル空間上のベクトルSDによって表される基準方向を用いて、第4の位置P4から第3の位置P3へのベクトルを求め、第3の位置P3を特定する。この基準方向は、前述したように、ステップS103において取得される。図6に示す基準方向を表すベクトルSDは、基底BS1に対する成分がαで、基底BS2に対する成分がβで、基底BS3に対する成分がγであるベクトルである。
この時、基準方向を表すベクトルSDは、第1の位置P1と第2の位置P2と第3の位置P3とを頂点とする三角形の面と直交するため、第4の線分を表すベクトルと第5の線分を表すベクトル(第1の位置P1から第4の位置P4へのベクトル)との外積の方向は、基準方向と平行になる。そのため、下式(3)の方程式が成り立つ。
Figure 0006079293
また、第4の線分を表すベクトルと第5の線分を表すベクトルは直交しているため、この二つのベクトルの内積はゼロになり、下式(4)の方程式が成り立つ。
Figure 0006079293
そして、この方程式(3)と方程式(4)を解いて、下式(5)に示す第4の線分を表すベクトルと、下式(6)に示す第5の線分を表すベクトルを求める。ここで、第4の線分を表すベクトルは、基底BS1に対する成分がΔxで、基底BS2に対する成分がΔyで、基底BS3に対する成分がΔzであるベクトルとして求められる。同様に、第5の線分を表すベクトルは、基底BS1に対する成分がΔxで、基底BS2に対する成分がΔyで、基底BS3に対する成分がΔzであるベクトルとして求められる。
Figure 0006079293
Figure 0006079293
最後に、下式(7)により、第3の位置P3を表すベクトルを求める。また、式(7)中で用いるアームの付け根位置PSから第1の位置P1へのベクトルは下式(8)により表される。このアームの付け根位置PSから第1の位置P1へのベクトルは、アームの付け根位置を表すベクトルと、既知なリンク長l及びlに基づいて求められる。
Figure 0006079293
Figure 0006079293
以上がステップS104で行う具体的な処理である。
4.本実施形態の手法
次に、本実施形態の手法について説明する。
以上の本実施形態のロボット制御システム100では、ロボット200のアーム210の関節位置を決定する関節位置決定部130と、関節位置を決定する際に用いる基準方向を取得する基準方向取得部110と、決定されたロボット200のアーム210の関節位置に基づいて、アームの関節角を求めて、ロボット200を制御するロボット制御部150と、を含む。そして、関節位置決定部130は、アーム210上において第1の位置と第2の位置との間の第3の位置にある関節の関節位置を決定する際に、第1の位置と第2の位置とを結ぶ第1の線分を含む平面が向く方向を基準方向によって特定し、平面上において第1の線分から所与の距離にある位置を第3の位置として求める。
本実施形態では、まず基準方向取得部110が基準方向を取得する。
ここで、基準方向とは、関節位置決定部130が関節位置を決定する際に用いる基準となる方向のことをいう。基準方向は、例えばユーザーにより入力されるが、必ずしもユーザーにより入力されるとは限らず、あらかじめ決められた方向であってもよいし、例えば後述する方法によって算出する等してもよい。
そして、関節位置決定部130が、アーム210上において第1の位置と第2の位置との間の第3の位置にある関節の関節位置を決定する際に、第1の位置と第2の位置とを結ぶ第1の線分を含む平面が向く方向を基準方向に基づいて特定する。
ここで、第1の位置は、ロボット200の肩関節が回転しても位置が不変な位置であってもよい。具体的に図3に示す冗長自由度ロボットのアームにおいては、第1の位置P1は、肩部SH上のいずれの位置であってもよい。また、肩部SHから所定距離だけ離れた位置を第1の位置P1と設定してもよい。
これにより、ロボットのアームの所望の位置に第1の位置を設定することが可能になる。
また、第2の位置は、ロボット200のアーム210のエンドポイント位置であってもよい。
さらに、第3の位置は、双腕若しくは単腕ロボットの肘関節位置であってもよい。具体的に図3に示す冗長自由度ロボットのアームにおいては、第3の位置P3は、上腕節UA上のいずれの位置であってもよい。
これにより、ロボットのハンドの目標移動位置を第2の位置とし、冗長自由度を実現する関節の関節位置を第3の位置として設定することが可能になる。その結果、後述する方法により、冗長自由度を実現する関節の関節位置を特定することが可能になる。
また、第1の線分とは、第1の位置と第2の位置とを結ぶ線分のことを指す。
さらに、第1の線分を含む平面とは、例えば図5では、第1の位置P1と第2の位置P2と第3の位置P3とを頂点とする三角平面などのことを指す。
次に、関節位置決定部130は、特定した平面上において第1の線分から所与の距離にある位置を第3の位置として求め、第3の位置以外の関節位置も求める。
そして、ロボット制御部150が、決定されたロボット200のアーム210の関節位置に基づいて、関節角を求めて、ロボット200を制御する。
これにより、冗長自由度を有するロボットのアームを所定の位置に移動させる際に、ロボットの各関節位置を決定することが可能となる。
また、前述したように、冗長自由度ロボットにおける逆運動学方程式の解を一意に定めるためには、何らかの制約条件を与える必要がある。しかし、例えば任意の関節部の回転角度を制約条件として指定すること等は、ユーザーにとって困難である。これに対して、本実施形態では、ユーザーが指定しやすい基準方向により制約条件を入力することも可能であるため、制約条件の入力をユーザーが容易に行えるようにすること等が可能になる。
また、関節位置決定部130は、第1の位置と第2の位置と第3の位置とを含む平面に直交する方向が、基準方向に対して平行な方向となるように、平面の向く方向を特定してもよい。
これにより、第1の位置と第2の位置と第3の位置とを含む平面が、特定された方向を向くような位置に、第3の位置があると特定すること等が可能になる。
また、関節位置決定部130は、第1の線分の長さと、第1の位置と第3の位置とを結ぶ第2の線分の長さと、第2の位置と第3の位置とを結ぶ第3の線分の長さとに基づいて、第3の位置と第1の線分上の第4の位置とを結ぶ線分であって、第1の線分に対して垂直な第4の線分の長さを求め、第4の線分の長さに基づいて、第3の位置を求めてもよい。
なお、言い換えれば、第4の線分の長さは、第1の位置と第2の位置と第3の位置とを頂点とする三角形において、第1の線分を底辺とした時の高さである。
これにより、第1の線分から第3の位置までの距離を求めて、求めた距離に基づいて、第3の位置を求めること等が可能になる。
また、関節位置決定部130は、第4の線分の長さに基づいて、第1の位置と第4の位置とを結ぶ第5の線分の長さを求め、第5の線分の長さに基づいて第4の位置を求め、第4の位置と第4の線分の長さに基づいて、第3の位置を求めてもよい。
これにより、第1の線分から第3の位置への方向を特定し、求めた方向に基づいて、第3の位置を求めること等が可能になる。
以上により、第1の線分から第3の位置までの距離と、第1の線分から第3の位置への方向(始点である第4の位置を含む)を特定できたため、第3の位置を特定すること等が可能になる。
また、このことはベクトルの外積と内積を用いて言い替えることができる。
すなわち、関節位置決定部130は、第3の位置と第1の線分上の第4の位置とを結ぶ線分であって、第1の線分に対して垂直な第4の線分を表すベクトルと、第1の位置と第4の位置とを結ぶ第5の線分を表すベクトルとの外積と内積に基づいて、第3の位置を求めてもよい。
これにより、二つのベクトルの外積と内積を表す連立方程式を解くことにより、第3の位置を求めること等が可能になる。
また、関節位置決定部130は、第4の線分を表すベクトルと第5の線分を表すベクトルとの外積の方向が基準方向と平行であることと、第4の線分を表すベクトルと第5の線分を表すベクトルとの内積がゼロになることに基づいて、第3の位置を求めてもよい。
ここで、前述したように式(3)により、第4の線分を表すベクトルと第5の線分を表すベクトルとの外積の方向が基準方向と平行であることが表される。
同様に、式(4)により、第4の線分を表すベクトルと第5の線分を表すベクトルとの内積がゼロになることが表される。
これにより、二つの連立方程式の解を求めることにより、第4の位置から第3の位置へのベクトルを求め、求めた第4の位置から第3の位置へのベクトルに基づいて、第3の位置を特定すること等が可能になる。
次に、図4のフローチャートにおけるステップS105の処理の詳細を説明する。
例えば、基準方向がユーザーにより入力されるものである場合には、前述してきた処理によって第3の位置P3を特定した後に、第3の位置P3を調整(微調整)する必要が生じる場合がある。
そこで、関節位置決定部130は、基準方向を第1の線分周りで所与の角度だけ回転させ、回転後の第3の位置を求めてもよい。この処理の様子を図7に示す。
ここで、所与の角度φは、例えばユーザーにより入力される角度である。その場合、所与の角度φは、第3の位置P3を一度決定した後に入力するものであるため、ユーザーにとってもどのような値を入力すればよいか判断が容易である。
そして、所与の角度φを取得した後は、下式(9)〜下式(11)に基づいて、新たな第3の位置P3を計算する。
まず、式(9)に示すように、第4の線分を表すベクトルの単位ベクトルを計算する。
Figure 0006079293
次に、式(9)により計算した第4の線分を表すベクトルの単位ベクトルに基づいて、第1の線分(第4の線分)周りで所与の角度φだけ回転させた時の回転ベクトルを式(10)により求める。
Figure 0006079293
最後に、求めた回転ベクトルを用いて、式(11)により、図7に示すような調整後の第3の位置P3’を求める。以上が、ステップS105の処理の詳細である。
Figure 0006079293
これにより、基準方向に基づいて求めた第3の位置を調整したい場合に、基準方向を再度指定せずに、第3の位置を調整すること等が可能になる。
次に、図4のフローチャートにおけるステップS103の処理の詳細を説明する。
本処理では、図8に太線で示すように、アームの付け根位置PSと第1の位置P1と第2の位置P2とを頂点とする三角形を考える。そして、この三角形に直交するベクトルSDを求めて、このベクトルSDが表す方向を基準方向として求める。
具体的には、アームの付け根位置PSから第1の位置P1へのベクトルと、第1の位置P1から第4の位置P4へのベクトルとの外積を下式(12)により求める。
Figure 0006079293
そして、求めた外積の単位ベクトルを下式(13)により求めて、このベクトルが表す方向を基準方向とする。以上が、ステップS103の処理の詳細である。
Figure 0006079293
また、ロボット200のアーム210には、肘関節と、肩関節と、所定軸周りで回転する上腕節と、が設けられてもよい。
これにより、冗長自由度ロボットを実現すること等が可能になる。
また、関節位置決定部130は、ロボット200のアーム210において、第3の位置にある関節以外の関節の位置を逆運動学により求めてもよい。
これにより、全ての関節の位置を求めること等が可能になる。
また、本実施形態の教示装置300は、ロボット200のアーム210の関節位置を決定する際に用いる基準方向の入力を受け付ける入力受付部310と、関節位置を決定する関節位置決定部130と、ロボット200を制御するロボット制御部150に、関節位置決定部130により決定された関節位置を出力する関節位置出力部340と、を含む。
教示装置300の具体的な構成例を図9(A)及び図9(B)に示す。図9(A)に示すように、教示装置300は、例えばPCであって、有線又は無線によりロボット制御システム100を含むロボット200と接続されている。
そして、図9(B)に示すように、教示装置300は、入力受付部310と、関節位置決定部130と、記憶部330と、関節位置出力部340とを含む。なお、関節位置決定部130の動作及び構成は、前述した通りであるため、記載を省略する。
入力受付部310(基準方向取得部110)は、ユーザーからの入力として基準方向を受け付けるI/F(インターフェース)部や通信部である。より具体的には、入力受付部310は、キーボードやタッチパネル等である。
また、記憶部330は、関節位置決定部130のワーク領域となるものであり、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。
そして、関節位置出力部340は、決定された関節位置をロボット制御部150に出力する。関節位置出力部340は、例えば通信部であり、有線又は無線の少なくとも一方を含むネットワークを介してロボット制御システム100と通信を行う。
図9(B)の例では、ロボット制御システム100は、前述したロボット制御部150を含む。
なお、教示装置300は、図9(B)の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
これにより、教示装置300により決定された関節位置に基づいて、ロボット制御部150がロボット200の各部を動作させることが可能になる。
なお、本実施形態のロボット制御システム100等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム100等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボット、教示装置及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
100 ロボット制御システム、110 基準方向取得部、130 関節位置決定部、
150 ロボット制御部、200 ロボット(ロボット本体)、210 アーム、
220 ハンド、300 教示装置、310 入力受付部、330 記憶部、
340 関節位置出力部

Claims (15)

  1. ロボットのアームの関節位置を決定する関節位置決定部と、
    前記関節位置を決定する際に用いる基準方向を取得する基準方向取得部と、
    決定された前記ロボットの前記アームの前記関節位置に基づいて、前記アームの関節角を求めて、前記ロボットを制御するロボット制御部と、
    を含み、
    前記関節位置決定部は、
    前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定し、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求めることを特徴とするロボット制御システム。
  2. 請求項1において、
    前記関節位置決定部は、
    前記第1の位置と前記第2の位置と前記第3の位置とを含む前記平面に直交する方向が、前記基準方向に対して平行な方向となるように、前記平面の向く方向を特定することを特徴とするロボット制御システム。
  3. 請求項1又は2において、
    前記関節位置決定部は、
    前記第1の線分の長さと、前記第1の位置と前記第3の位置とを結ぶ第2の線分の長さと、前記第2の位置と前記第3の位置とを結ぶ第3の線分の長さとに基づいて、前記第3の位置と前記第1の線分上の第4の位置とを結ぶ線分であって、前記第1の線分に対して垂直な第4の線分の長さを求め、前記第4の線分の長さに基づいて、前記第3の位置を求めることを特徴とするロボット制御システム。
  4. 請求項3において、
    前記関節位置決定部は、
    前記第4の線分の長さに基づいて、前記第1の位置と前記第4の位置とを結ぶ第5の線分の長さを求め、前記第5の線分の長さに基づいて前記第4の位置を求め、前記第4の位置と前記第4の線分の長さに基づいて、前記第3の位置を求めることを特徴とするロボット制御システム。
  5. 請求項1又は2において、
    前記関節位置決定部は、
    前記第3の位置と前記第1の線分上の第4の位置とを結ぶ線分であって、前記第1の線分に対して垂直な第4の線分を表すベクトルと、前記第1の位置と前記第4の位置とを結ぶ第5の線分を表すベクトルとの外積と内積に基づいて、前記第3の位置を求めることを特徴とするロボット制御システム。
  6. 請求項5において、
    前記関節位置決定部は、
    前記第4の線分を表すベクトルと前記第5の線分を表すベクトルとの外積の方向が前記基準方向と平行であることと、前記第4の線分を表すベクトルと前記第5の線分を表すベクトルとの内積がゼロになることに基づいて、前記第3の位置を求めることを特徴とするロボット制御システム。
  7. 請求項1乃至6のいずれかにおいて、
    前記関節位置決定部は、
    前記基準方向を前記第1の線分周りで所与の角度だけ回転させ、回転後の前記第3の位置を求めることを特徴とするロボット制御システム。
  8. 請求項1乃至7のいずれかにおいて、
    前記第2の位置は、
    前記ロボットの前記アームのエンドポイント位置であり、
    前記第3の位置は、
    双腕若しくは単腕ロボットの肘関節位置であることを特徴とするロボット制御システム。
  9. 請求項1乃至8のいずれかにおいて、
    前記第1の位置は、
    前記ロボットの肩関節が回転しても位置が不変な位置であることを特徴とするロボット制御システム。
  10. 請求項1乃至9のいずれかにおいて、
    前記ロボットの前記アームには、
    肘関節と、肩関節と、所定軸周りで回転する上腕節と、が設けられることを特徴とするロボット制御システム。
  11. 請求項1乃至10のいずれかにおいて、
    前記関節位置決定部は、
    前記ロボットの前記アームにおいて、前記第3の位置にある関節以外の関節の位置を逆運動学により求めることを特徴とするロボット制御システム。
  12. 請求項1乃至11のいずれかに記載のロボット制御システムを含むことを特徴とするロボット。
  13. ロボットのアームの関節位置を決定する際に用いる基準方向の入力を受け付ける入力受付部と、
    前記関節位置を決定する関節位置決定部と、
    前記ロボットを制御するロボット制御部に、前記関節位置決定部により決定された前記関節位置を出力する関節位置出力部と、
    を含み、
    前記関節位置決定部は、
    前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定し、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求めることを特徴とする教示装置。
  14. ロボットのアームの関節位置を決定する関節位置決定部と、
    前記関節位置を決定する際に用いる基準方向を取得する基準方向取得部と、
    決定された前記ロボットの前記アームの前記関節位置に基づいて、前記アームの関節角を求めて、前記ロボットを制御するロボット制御部として、
    コンピューターを機能させ、
    前記関節位置決定部は、
    前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定し、前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求めることを特徴とするプログラム。
  15. ロボットのアームの関節位置を決定する際に用いる基準方向を取得する処理を行い、
    前記アーム上において第1の位置と第2の位置との間の第3の位置にある関節の前記関節位置を決定する際に、前記第1の位置と前記第2の位置とを結ぶ第1の線分を含む平面が向く方向を前記基準方向によって特定する処理を行い、
    前記平面上において前記第1の線分から所与の距離にある位置を前記第3の位置として求める処理を行い、
    前記ロボットの前記アームの前記関節位置を決定する処理を行い、
    決定された前記ロボットの前記アームの前記関節位置に基づいて、前記ロボットを制御する処理を行うことを特徴とするロボット制御方法。
JP2013032932A 2013-02-22 2013-02-22 ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法 Active JP6079293B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013032932A JP6079293B2 (ja) 2013-02-22 2013-02-22 ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013032932A JP6079293B2 (ja) 2013-02-22 2013-02-22 ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法

Publications (2)

Publication Number Publication Date
JP2014161930A JP2014161930A (ja) 2014-09-08
JP6079293B2 true JP6079293B2 (ja) 2017-02-15

Family

ID=51613061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013032932A Active JP6079293B2 (ja) 2013-02-22 2013-02-22 ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法

Country Status (1)

Country Link
JP (1) JP6079293B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6748179B2 (ja) * 2018-11-27 2020-08-26 ライフロボティクス株式会社 ロボットアーム機構

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05228854A (ja) * 1992-02-18 1993-09-07 Fujitsu Ltd 7自由度アーム制御方式
DE19547121A1 (de) * 1995-12-16 1996-05-30 Percy Dahm Verfahren zur Ermittlung der analytischen inversen Kinematik eines Roboter-Arms mit sieben Freiheitsgraden
JP2012040633A (ja) * 2010-08-18 2012-03-01 Toyota Motor Corp 冗長マニピュレータの冗長自由度の決定方法

Also Published As

Publication number Publication date
JP2014161930A (ja) 2014-09-08

Similar Documents

Publication Publication Date Title
CN107414842B (zh) 控制装置、机器人以及机器人系统
WO2018090323A1 (zh) 一种坐标系标定方法、系统及装置
US8977392B2 (en) Robot control device, robot control method, robot control program, and robot system
JP2017071018A (ja) ロボットシステム、ロボット、及びロボット制御装置
CN108883533A (zh) 机器人控制
WO2016135861A1 (ja) マニプレータ、マニプレータの動作計画方法、および、マニプレータの制御システム
EP3953114A1 (en) System and method for constraint management of one or more robots
JP2010131702A (ja) ロボット装置
US20130173055A1 (en) Robot hand and humanoid robot having the same
JP2014018912A (ja) ロボット制御装置、ロボット制御方法およびロボット制御プログラムならびにロボットシステム
US20180085920A1 (en) Robot control device, robot, and robot system
WO2015137162A1 (ja) 制御装置、ロボットシステム、および制御用データ生成方法
US20210154832A1 (en) Multi-angle end effector
JP6003312B2 (ja) ロボットシステム
JP2015054378A (ja) 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム
US20180215044A1 (en) Image processing device, robot control device, and robot
JP2018069361A (ja) 力制御座標軸設定装置、ロボットおよび力制御座標軸設定方法
JP6079293B2 (ja) ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法
Gienger et al. Exploiting task intervals for whole body robot control
KR20220099535A (ko) 손목 오프셋 로봇들을 위한 역운동학 솔버
JP2015085494A (ja) ロボット、制御装置、ロボットシステム及びロボット制御方法
Jeon et al. Cost-effective calibration of collaborative robot arm with single wire encoder
US20190389052A1 (en) Control apparatus, robot, and robot system
KR102474838B1 (ko) 로봇의 교시 장치, 방법 및 시스템
Koo et al. Motion capture based dual arm control of a humanoid robot using kinect

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160610

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161206

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: 20161220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150