JP6398777B2 - ロボット制御装置、制御方法、及び制御プログラム - Google Patents

ロボット制御装置、制御方法、及び制御プログラム Download PDF

Info

Publication number
JP6398777B2
JP6398777B2 JP2015029839A JP2015029839A JP6398777B2 JP 6398777 B2 JP6398777 B2 JP 6398777B2 JP 2015029839 A JP2015029839 A JP 2015029839A JP 2015029839 A JP2015029839 A JP 2015029839A JP 6398777 B2 JP6398777 B2 JP 6398777B2
Authority
JP
Japan
Prior art keywords
robot
optimal solution
optimization problem
posture information
candidate list
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
JP2015029839A
Other languages
English (en)
Other versions
JP2016150419A (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2015029839A priority Critical patent/JP6398777B2/ja
Publication of JP2016150419A publication Critical patent/JP2016150419A/ja
Application granted granted Critical
Publication of JP6398777B2 publication Critical patent/JP6398777B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、ロボットを制御するロボット制御装置、制御方法、及び制御プログラムに関するものである。
例えば、関節で接続された複数のリンクから成る木構造リンク系のポーズ及び動作を生成する方法が知られている(特許文献1参照)。
特開2003−058907号公報
上記方法において、冗長系の逆運動力学が用いられている。したがって、この方法を用いてロボット制御を行なった場合、その計算時間が膨大となるため、制御周期が低速となり、タスクの追従性が悪化する虞がある。
本発明は、このような問題点を解決するためになされたものであり、高速な制御周期が実現できつつ、タスクの追従性が良好にできるロボット制御装置、制御方法、及び制御プログラムを提供することを主たる目的とする。
上記目的を達成するための本発明の一態様は、ロボット周囲の環境情報を取得する環境情報取得手段と、前記ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、前記環境取得手段により取得された環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出する低速周期演算手段と、前記ロボットの姿勢情報と、前記タスクの目標値と、前記低速周期演算手段からのタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記低速周期演算手段からの干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記低速周期演算手段により算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出する高速周期演算手段と、前記高速周期演算手段により算出された姿勢情報に基づいて前記ロボットを制御する制御手段と、を備えることを特徴とするロボット制御装置である。
この一態様において、前記低速周期演算手段は、前記求解した最適化問題の最適解と、対応する前記タスクリスト及び干渉候補リストと、を記憶する記憶部を有し、前記高速周期演算手段は、前記記憶部に前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、が存在するとき、前記記憶部から読み込んだ前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、に基づいて、前記最適化問題を求解し、前記記憶部に前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、が存在しないとき、前回周期の前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、に基づいて、前記最適化問題を求解してもよい。
この一態様において、前記高速周期演算手段は、ウォームスターティング付きのアクティブセット法を用いて、前記最適化問題を求解し、前記低速周期演算手段は、内点法を用いて前記最適化問題を求解してもよい。
この一態様において、前記ロボットの姿勢情報は、現状の前記ロボットのベースフレームの位置姿勢と、前記ロボットの関節角度と、を含んでいてもよい。
この一態様において、前記最適化問題の最適解は、前記ロボットの姿勢情報の微分値であってもよい。
上記目的を達成するための本発明の一態様は、ロボット周囲の環境情報を取得するステップと、前記ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、前記取得された環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出するステップと、前記ロボットの姿勢情報と、前記タスクの目標値と、前記設定されたタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記設定された干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出するステップと、前記算出された姿勢情報に基づいて前記ロボットを制御するステップと、を含む、ことを特徴とする制御方法であってもよい。
上記目的を達成するための本発明の一態様は、ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、取得された前記ロボット周囲の環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出する処理と、前記ロボットの姿勢情報と、前記タスクの目標値と、前記設定されたタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記設定された干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出する処理と、前記算出された姿勢情報に基づいて前記ロボットを制御する処理と、をコンピュータに実行させる、ことを特徴とする制御プログラムであってもよい。
本発明によれば、高速な制御周期が実現できつつ、タスクの追従性が良好にできるロボット制御装置、制御方法、及び制御プログラムを提供することができる。
本発明の一実施形態に係るロボット制御装置の概略的なシステム構成を示すブロック図である。 ヒューマノイドロボットの一例を示す図である。 velocity damperを説明するための図である。 本発明の一実施形態に係る低速周期演算部及び高速周期演算部の演算処理を示すブロック図である。 本発明の一実施形態に係る低速周期演算部による低速周期の最適化演算方法のフローを示すフローチャートである。 本発明の一実施形態に係る高速周期演算部による高速周期の最適化演算方法のフローを示すフローチャートである。
以下、図面を参照して本発明の実施の形態について説明する。本発明の一実施形態に係るロボット制御装置は、例えば、複数の関節部を介して連結された複数のリンクを有するヒューマノイドロボットなどのロボットの動作を制御する。各関節部には、例えば、サーボアンプと、各関節部を駆動するサーボモータなどのアクチュエータと、が設けられている。ロボット制御装置は、各関節部のサーボアンプを介して、各アクチュエータを制御することで、ロボットを制御する。
図1は、本発明の一実施形態に係るロボット制御装置の概略的なシステム構成を示すブロック図である。本実施形態に係るロボット制御装置1は、環境情報を取得する環境センサ2と、ロボットの最適化問題の最適解を低速周期で算出する低速周期演算部3と、ロボットの最適化問題の最適解を高速周期で算出する高速周期演算部4と、各関節部を駆動する複数のアクチュエータ5と、各アクチュエータ5を制御する制御部6と、を備えている。
ロボット制御装置1は、例えば、演算処理等と行うCPU(Central Processing Unit)、CPUによって実行される演算プログラム、制御プログラム等が記憶されたROM(Read Only Memory)やRAM(Random Access Memory)からなるメモリ、外部と信号の入出力を行うインターフェイス部(I/F)、などからなるマイクロコンピュータを中心にして、ハードウェア構成されている。CPU、メモリ、及びインターフェイス部は、データバスなどを介して相互に接続されている。
環境センサ2は、環境情報取得手段の一具体例である。環境センサ2は、例えば、ロボット周囲に存在する障害物などの環境との間の距離情報、障害物の形状情報などの環境情報を取得する。環境センサ2は、例えば、カメラ、超音波センサ、ミリ波センサ、などの距離センサである。環境センサ2は、取得した環境情報を低速周期演算部3に出力する。
低速周期演算部3は、低速周期演算手段の一具体例である。低速周期演算部3は、ロボットが達成するタスク情報を含むタスクリストを更新する。そして、低速周期演算部3は、更新したタスクリストと、ロボットの姿勢情報と、ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定する。また、低速周期演算部3は、ロボットが環境と接触する候補を含む干渉候補リストを、ロボットの姿勢情報と、環境センサ2から出力された環境情報と、に基づいて更新する。低速周期演算部3は、更新した干渉候補リストと、ロボットの姿勢情報と、に基づいて不等式制約条件を設定する。低速周期演算部3は、設定した等式制約条件及び不等式制約条件に基づいて、ロボットの逆運動学の最適化問題を、低速周期(低速の第1周期)で求解し、該最適化問題の最適解を算出する。
高速周期演算部4は、高速周期演算手段の一具体例である。高速周期演算部4は、ロボットの姿勢情報と、タスクの目標値と、低速周期演算部3からのタスクリスト又は前回周期のタスクリストと、に基づいて、等式制約条件を設定する。また、高速周期演算部4は、ロボットの姿勢情報と、タスクの目標値と、低速周期演算部3からのタスクリスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定する。高速周期演算部4は、設定した等式制約条件及び不等式制約条件に基づいて、低速周期演算部3により算出された最適解又は前回周期の最適解を初期値としてロボットの逆運動学の最適化問題を、高速周期(第1周期より高速の第2周期)で求解し、最適化問題の最適解を算出する。高速周期演算部4は、該算出した最適解に基づいてロボットの姿勢情報を算出し、算出した姿勢情報を制御部6に出力する。
制御部6は、制御手段の一具体例である。制御部6は、高速周期演算部4から出力された姿勢情報に基づいて、各関節部のアクチュエータ5を制御する。
ところで、例えば、ヒューマノイドロボットなどの多自由度ロボットの逆運動学問題では、関節制約や環境との干渉を回避しつつ目標タスクを達成するように構成した最適化ベースのアルゴリズムを用いている。このような最適化問題の求解は、汎用性及び拡張性が非常に高いというメリットを有している。一方で、従来、この最適化問題の求解は、多くの計算時間を要するため、制御周期が上げられず、目標タスクに対する追従性が悪いという、問題が生じていた。
これに対し、本実施形態に係るロボット制御装置1においては、上述の如く、低速周期演算部3が、タスクリスト及び干渉候補リストの更新を行う。低速周期演算部3は、更新したタスクリスト及び干渉候補リストに基づいて、最適化問題を低速周期で最適解を求解する。
同時に、高速周期演算部4は、低速周期演算部3からの又は前回周期のタスクリスト及び干渉候補リストに基づいて、低速周期演算部3からの又は前回周期の最適解を初期値として、最適化問題を高速周期で最適解を求解する。すなわち、低速周期演算部3は、タスクリスト及び干渉候補リストを更新して大域的にかつ低速周期で最適化問題を解く。同時に、高速周期演算部4はタスクリスト及び干渉候補リストを更新せずに低速周期演算部3の最適解または前回周期の最適解近傍から開始して効率的にかつ高速周期で最適化問題を解く。このように、低速周期演算部3及び高速周期演算部4が並列的に演算処理を行うことで、最適化ベースの逆運動学計算法で高速な制御周期を実現でき、タスクの追従性を良好にできる。
ここで、一般的な逆運動学問題について詳細に説明する。例えば、ロボットの手先の位置・姿勢を表すベクトルr∈Rと関節角度ベクトルθ∈Rとにおいて、下記式が成立する。
r=f(θ) (1)
逆運動学問題は、上記式の逆問題である下記式を求める問題である。すなわち、逆運動学問題とは、「手先の位置・姿勢を満たす関節角を求める問題」と換言できる。
θ=f−1(r) (2)
例えば、7軸マニュピュレータの手先位置・姿勢制御では、ヤコビ行列のサイズm=6、n=7となる。このように、m<nが成立するロボットは、冗長マニュピュレータもしくは冗長ロボットと呼ばれる。rに対するθが一意に決まらない。このため、何らかの指標を用いて上記逆運動学問題を解くこととなる。
上記(2)式は、非線形性が強く、通常、解析的に解くことは困難である。このため、上記(2)式の両辺を微分した下記(3)式を用いて関節角速度を算出し、この算出した関節角速度を積分することで数値的に上記(2)式を解くことが一般的である。
Figure 0006398777
但し、ヤコビ行列は、下記(4)式で表すことができる。
Figure 0006398777
以上、説明したように、(2)式に示す逆運動学問題は、上記(3)式を満たすような関節角速度を求めるという問題に帰着できる。
上記逆運動学問題について、例えば、図2に示すヒューマノイドロボットの左手先及び右足先の位置姿勢と重心位置とにタスクが設定する場合を説明する。ベースフレーム(例えば、ロボット100の腰フレーム)から見た左手先及び右足先のヤコビアンJlhand、Jrfoot、重心ヤコビアンJcogは、下記(5)式で表すことができる。但し、下記(5)式において、Plhandは左手先の位置・姿勢、Prfootは右足先の位置・姿勢、Pcogは重心位置、とする。また、P(ドット)baseはベースフレームの位置・姿勢、θ(ドット)は全関節角速度を縦に並べた関節角速度ベクトル、とする。
Figure 0006398777
なお、上記(5)において、qは、ロボット100の関節角度やベースフレームの位置・姿勢などを示す姿勢情報である。q(ドット)はそのqの微分値であり、以下同様に各パラメータを表現する
上記(5)式は、上記(2)式と異なり、解ベクトルがθ(ドット)からq(ドット)に拡張されている。これは、ヒューマノイドロボット等のように、ベースフレームが空間上に固定されていないロボットで一般的に行われる処理であり、関節角度と同時にベースフレームの位置・姿勢を求めることができる。上記ロボットは、フローティングベースのロボットと称し、一方、産業用ロボットマニュピュレータ等はベースフレームが地面等に固定されている。本実施形態においては、上記フローティングベースのロボットを一例にして説明を行うが、これに限定されない。 本実施形態に係るロボット制御装置1は、ベースフレームが固定されたロボットにも適用可能である。
上記(5)式は、下記(6)式のように表現できる。
Figure 0006398777
ここで、例えば、ロボット100の関節数を30とすると、ヤコビ行列のサイズはm=3+6+6=15、n=6+30=36となる。この場合、かなり冗長性の高い逆運動学問題となることが分かる。ロボット100が達成するタスク情報を含むタスクリストをLと定義する。位置3自由度の指定をPxyz、姿勢3自由度の指定をRrpyとすると、タスクリストLは下記(7)のように表現できる。
Figure 0006398777
なお、上記タスクリストは一例であり、これに限定されない。例えば、タスクリストLは、上記と異なるフォーマット形式や実装であってもよい。
上記(6)式の等式制約条件は、上記(7)式のタスクリストLに依存しており、下記(8)式のように表現できる。但し、fは任意の関数とする。
A=f(L、q)
b=f(L、t) (8)
したがって、タスクリストLを固定した場合、上記(6)式の等式制約条件は、下記(9)式のように表現できる。
A=fA、Lt(q)
b=fb、Lt(t) (9)
次に、関節角速度の不等式制約条件について、説明する。ロボット100の動作を実際に決める際、ロボット100が実行可能な動作に決める必要がある。例えば、ロボット100の各関節は、その動作可能範囲がハードウェア的に決まっている。このため、その動作可能範囲内に関節角度が収まるように逆運動学を解く必要がある。また、腕が胴体と接触しないように制限するなどの自己干渉回避や、ロボット100の各部が環境の障害物と接触しないように制限するなどの外界干渉回避を行う必要がある。このような制限を関節角速度の不等式制約条件として設定する。なお、この不等式制約条件は、本出願人が提出した特開2011−183527号公報に詳細に開示されており、これを援用できるものとし、以下、概略のみ説明する。
関節可動域(関節角度制限)と関節角速度制限は、下記(10)式のように表現できる。但し、θj、maxはj関節の角度上限値、θj、minはj関節の角度下限値、θ(ドット)j、maxはj関節の角速度上限値、θ(ドット)j、minはj関節の角速度下限値、Ψj、maxはj関節の角度上限値で関節を止めるための猶予角度、Ψj、minはj関節の角度下限値で関節を止めるための猶予角度、である。
Figure 0006398777
上記(10)式は下記(11)式のように表現できる。
Figure 0006398777
上記、θj、max、θj、min、θ(ドット)j、max、θ(ドット)j、min、Ψj、max、Ψj、minを固定すると、上記(11)式の係数は下記(12)式のように表現できる。
jnt=const
jnt=fgjnt(q) (12)
自己干渉回避および外界干渉回避について説明する。本実施形態において、例えば、Faverjonらによって提案されたvelocity damperを用いて上記干渉回避を行う。velocity damperは下記(13)式に示すように、2つの物体間の距離に応じて速度に制約を設けるものである。下記(13)式において、dは2つの物体間の最短距離、dはvelocity damperが有効になり始める距離、dは物体間に確保される最小距離、ζは減速度合いを調整する正パラメータ、である(図3)。
Figure 0006398777
上記(13)式に示すように、dがdより小さくなると徐々に減速し始め、d=dのときに完全に停止するような拘束条件となっている。したがって、dがdより小さくなることは無く、干渉回避が達成される。
物体間の最近点をp、pとし、最近点同士を結んだ方向の単位ベクトルをnとすると上記(13)式は、下記(14)式のように表すことができる。但し、下記(14)式において、Jp1、Jp2は、p、pのヤコビアンである。
Figure 0006398777
以上のようにして、干渉回避の条件は、下記(15)式に示す線形の不等式制約条件で表すことができる。
Figure 0006398777
上記(14)式を計算するためには、順運動学を行ってロボット100の全リンクの位置・姿勢を更新した上で、各リンク間の最短距離を求めることとなる。このとき、全リンクを組合せて、夫々の最短距離の計算した場合、その計算コストが非常に高くなる。これに対し、本実施形態において、後述の如く、低速周期演算部3は、低速周期で、全リンクの組合せの最短距離を算出し、その干渉判定し回避候補を選定し、干渉候補リストLを更新する。そして、高速周期演算部4は、高速周期で、低速周期演算部3により更新された干渉候補リストLの回避候補についてのみ、干渉回避の計算を行う。
次に、干渉候補リストLをについて詳細に説明する。例えば、ロボット100の右肘と胴体、左肘と環境(テーブル)が接近して干渉候補リストLに挙がったとすると、干渉候補リストLを下記(16)式のように表すことができる。
=[Srelbow×Sbody、Slelbow×Sbody] (16)
なお、干渉候補リストLは様々な方法で記述可能である。ここでは、Sは対象となるフレームのIDや干渉判定用のシェープ等、干渉判定に必要な情報を含んでいるものとする。上記(16)式は、干渉候補リストLに格納されている要素ペアのみを干渉判定するため、上記(16)式の各係数は、下記(17)式のように表すことができる。
Figure 0006398777
干渉候補リストLを固定した場合、上記(16)式の各係数は、下記(18)式のように表すことができる。
Figure 0006398777
最終的に、上記(12)式、(17)式及び(18)式をまとめて、1つの線形不等式制約条件として下記(19)式及び(20)式のように表すことができる。
Figure 0006398777
なお、干渉候補リストLを固定した場合、上記(19)式の係数C、gは、下記(21)式のように表すことができる。
Figure 0006398777
以上の定式化を用いて最適化問題を構成する。本実施形態に係る逆運動学問題は、上記(6)式および(19)式に基づいて、下記(22)式に示す凸2次計画問題に帰着することとなる。
Figure 0006398777
図4は、本実施形態に係る低速周期演算部及び高速周期演算部の演算処理を示すブロック図である。高速周期演算部4は、低速周期演算部3で算出された最適解、あるいは、前回周期において算出された最適解を今回周期の初期値とする、所謂ウォームスターティングを用いて上記(22)式の最適化問題を高速に解く。以下、そのウォームスターティングを用いる理由について説明する。
一般に目標軌道(例えば、Pcog、Plhand、Prfoot)は、滑らかな連続軌道となる。このため、制御周期が十分に短い場合、制御周期毎に求解する最適化問題(上記(15)式)は、隣合うサンプリング間でそれ程大きく変化しない。すなわち、上記(9)式のfb、Lt(t)は通常十分な滑らかさを有しており、サンプリング間隔が短ければ、bは漸次的にしか変化しない。
同様に、ロボット100の関節角度やベースフレームの位置・姿勢を示すqも、滑らかに動作する。このため、制御周期が十分に短い場合、隣合うサンプリング点で、その最適化問題の解は近い値となる。そして、干渉判定のシェープが適切に設定されていれば、上記(9)式及び(21)式におけるfLt(q)、fC、Lc(q)、fg、Lc(q)は滑らかな関数となる。このため、A、C、及びgも漸次的にしか変化しない。
以上により、等式制約条件が上記(9)式で表される(タスクリストLが変更されない)、および、不等式制約条件が上記(21)式で表される(干渉候補リストLが変更されない)限り、上記(22)式に示す最適化問題は滑らかに少しずつしか変化しない、ことが分かる。この場合、前回周期において算出した最適解を初期値に用いる、あるいは、前回の最適解求解時に有効になっていた等式制約条件及び不等式制約条件の情報を用いる、などの既知の情報を利用する上記ウォームアップスターティングが有効となる。これにより、非常に高速に最適化問題の解を求めることができる。なお、上記有効になっている等式および不等式制約条件とは、等式および不等式制約条件のうちで、求められた最適解が制約にぶつかった等式及び不等式制約条件を指す。
したがって、本実施形態に係る高速周期演算部4は、タスクリストLおよび干渉候補リストLが変更されない場合、ウォームスターティングを用いて演算処理を行い、上記(22)式の最適化問題を効率的に解くのが好ましい。なお、高速周期演算部4は、ウォームスターティングだけでなく、既知の情報を利用した、例えば、パラメトリック法等の他の手法を用いて演算処理を行ってもよい。
一方で、低速周期演算部3は、任意の初期値から実時間で収束解に至るような求解法を用いて最適化問題を解く。以下、その求解法を用いる理由について説明する。
タスクリストLや干渉候補リストLが変更された場合、等式制約条件が上記(8)式で表される(タスクリストLが変更される)、又は、不等式制約条件が上記(20)式で表される(干渉候補リストLが変更される)場合、前回周期の最適解、有効な等式および不等式制約条件などの既知の情報を利用することができない。例えば、タスクリストLが変更された場合、サイズも含めて、上記(8)式のA及びbは大きく変化する可能性がある。このため、タスクリストLの変更前に算出された最適解がタスクリストLの変更後に算出される最適解の近傍にあるという可能性は極めて低い。また、干渉候補リストLに関しても、環境センサ2で外界環境を観測した際に、環境センサ2の視野角や死角の関係で、今まで検出されなった壁や障害物などの物体等がロボット100自身の移動によって新たに検出されることが起こり得る。例えば、ロボット100自身の直ぐ隣にテーブルが新たに検出されるような場合、上記(20)式のC及びgは大きく変化する可能性がある。この場合も、前回周期で求解した最適解や有効な等式および不等式制約条件を、利用することはできない。
したがって、このようにタスクリストLや干渉候補リストLが変更された場合、前回周期で求解した最適解や有効な等式および不等式制約条件などの、既知の情報を用いずに、上記(22)式の最適化問題を大域的に解く必要がある。この場合、最適化問題を解くのに多少の時間を要したとしても、確実に、任意の初期値から実時間で収束解に至るような求解法が好ましい。そのような求解法として、例えば、内点法が有効的である。なお、凸2次計画問題の求解法として、一般的に、「アクティブセット法(有効制約法)」と上記「内点法」が知られている。
以上により、本実施形態において、高速周期演算部4は、「既知の情報を用いた高速求解」を目的として、例えば、ウォームスターティング付きのアクティブセット法を用いて、高速周期の最適化演算を効率的に行う。同時に、低速周期演算部3は、「実時間で必ず収束解を得る」を目的として、例えば、「内点法(より詳細にはインフィージブル内点法)」を用いて、低速周期の最適化演算を行う。
次に、本実施形態に係る低速周期演算部による上記低速周期の最適化演算方法のフローについて詳細に説明する。図5は、本実施形態に係る低速周期演算部による低速周期の最適化演算方法のフローを示すフローチャートである。なお、低速周期演算部3は、図5に示す制御処理を所定の微小時間毎に繰返し実行する。
低速周期演算部3は、高速周期演算部4からフィードバックされる、現状の姿勢情報qを取得する(ステップS101)。
低速周期演算部3は、取得した姿勢情報qに基づいて、順運動学演算を行い全身フレーム情報(全フレームの位置・姿勢など)の更新FK(q)を行う(ステップS102)。 環境センサ2は、ロボット100周囲の環境情報(例えば、障害物の位置・姿勢、形状などの情報)を取得し(ステップS103)、低速周期演算部3に出力する。
低速周期演算部3は、上位コントローラから設定タスクを読み込み、タスクリストLを更新する(ステップS104)。低速周期演算部3は、更新したタスクリストLと、高速周期演算部4からフィードバックされる姿勢情報qと、上位コントローラから出力されるタスクの目標値Ptask(t)の微分値と、に基づいて、等式制約条件(A=f(L、q)、b=f(L、t+Δt))を設定する(ステップS105)。タスクの目標値は、例えば、低速周期演算部3の周期分だけ未来の目標値を用いる。また、上位コントローラは、例えば、ロボット100の軌道を生成する軌道生成部である。
低速周期演算部3は、設定されている干渉候補リストLをリセットする。その後、低速周期演算部3は、更新した全身フレーム情報FK(q)と、環境センサ2から出力される環境情報と、に基づいて、全リンクを組み合わせて夫々の最短距離を算出する。そして、低速周期演算部3は、例えば、算出した最短距離のうち閾値以下となる最短距離のリンクの組合せ(ロボット100が環境と接触する候補)を、干渉候補リストLに加えることで、干渉候補リストLを更新する(ステップS106)。
低速周期演算部3は、更新した干渉候補リストLと、取得した姿勢情報qと、に基づいて、不等式制約条件(C=f(L、q)、g=f(L、q))を設定する(ステップS107)。
低速周期演算部3は、設定した等式制約条件と不等式制約条件とに基づいて、内点法を用いて、凸2次計画問題を解き最適解q(ドット)を算出する(ステップS108)。 低速周期演算部3は、算出した最適解q(ドット)と、対応する干渉候補リストL及びタスクリストLと、を後述のデータ授受を行うためのパイプ(記憶部の一具体例であり、メモリなど)に書き込む(ステップS109)。
ここで、上記低速周期演算部3で算出された最適解q(ドット)は、関節角度指令値を算出するための逆運動学演算に直接使用されるのではなく、高速周期演算部4が行う最適化演算の初期値として使用される。上述の如く、高速周期演算部4において、「最適化問題が連続的にしか変化しない」という前提下で、ウォームスターティング手法を用いて高速な最適化演算を実現している。したがって、タスクリストLや干渉候補リストLが変更された場合、上記、「最適化問題が連続的にしか変化しない」という前提が成立しない。
したがって、本実施形態において、低速周期演算部3が干渉候補リストL及びタスクリストLの更新を行い、凸2次計画問題の最適解を算出する。そして、高速周期演算部4は、低速周期演算部3で算出した 凸2次計画問題の最適解をウォームスターティングに利用する。
なお、低速周期演算部3は、上述の如く、全リンクを組合せて最短距離を計算するなどの計算コストの高い演算を行う必要がある。したがって、低速周期演算部3の周期は、これら計算コストの高い演算が完了できる程度に長く設定されている。また、低速周期演算部3は、環境センサ2からの環境情報に基づいて環境との干渉を回避するように不等式制約条件の設定を行っている。この為、低速周期演算部3は、環境センサ2の計測周期と同期している。これにより、常に最新の観測結果を干渉候補リストLに反映させることができる。このように、低速周期演算部3の周期は、例えば、全体の演算量、CPUのパワー、環境センサ2の計測周期などを考慮して決定される。
次に、本実施形態に係る高速周期演算部による上記高速周期の最適化演算方法のフローについて詳細に説明する。図6は、本実施形態に係る高速周期演算部による高速周期の最適化演算方法のフローを示すフローチャートである。なお、高速周期演算部4は、図6に示す制御処理を所定の微小時間毎に繰返し実行する。
高速周期演算部4は、低速周期演算部3のパイプを参照し、パイプに、最適解q(ドット)と、対応する干渉候補リストL及びタスクリストLと、の情報が存在するか否かを確認する(ステップS201)。
高速周期演算部4は、低速周期演算部3のパイプに情報が存在すると判断すると(ステップS201のYES)、パイプから、その最適解q(ドット)を読込み、読込んだ最適解を最適化問題の初期値q(ドット)に設定する(ステップS202)。高速周期演算部4は、対応する干渉候補リストL及びタスクリストLをパイプから読込み、高速周期側の干渉候補リストL 及びタスクリストL に設定する(ステップS203)。
一方、高速周期演算部4は、低速周期演算部3のパイプに情報が存在しないと判断すると(ステップS201のNO)、バッファ(メモリなど)から、前回周期の最適解、干渉候補リストL及びタスクリストLを読み出す。そして、高速周期演算部4は、読み出した前回周期の最適解を、今回周期の最適化演算の初期値に設定する(ステップS204)。高速周期演算部4は、読み出した前回周期の干渉候補リストL及びタスクリストLを今回周期最適化演算の干渉候補リストL及びタスクリストLに設定する。
例えば、低速周期演算部3の制御周期が15msであり、高速周期演算部4の制御周期が1msである場合、パイプには15制御周期毎に情報が存在することとなる。この場合、高速周期演算部4は、15制御周期のうち、1制御周期においてパイプの情報に基づいて最適化問題を解き、14制御周期において前回制御周期の情報に基づいて最適化問題を解くこととなる。
高速周期演算部4は、設定したタスクリストL と、フィードバックされた姿勢情報qと、上位コントローラから出力されるタスクの目標値Ptask(t)の微分値と、に基づいて、等式制約条件(A=fA、Lt*(q)、b=fb、Lt*(t))を設定する(ステップS205)。
高速周期演算部4は、設定した干渉候補リストL と、フィードバックされた姿勢情報qと、に基づいて、不等式制約条件(C=fc、Lc*(q)、g=fg、Lc*(q))を設定する(ステップS206)。
高速周期演算部4は、設定した等式制約条件と不等式制約条件とに基づいて、ウォームスターティング付きアクティブセット法を用いて、凸2次計画問題を解き最適解q(ドット)を算出する(ステップS207)。
制御部6は、高速周期演算部4により算出された最適解q(ドット)を積分し、各関節角度qを算出する。制御部6は、算出した関節角度qに基づいて、下記式(23)式により、各関節部に対する関節角度指令値qrefを算出する(ステップS208)。
Figure 0006398777
制御部6を算出した関節角度指令値qrefを各関節部のサーボアンプに出力する。サーボアンプは、制御部6からの関節角度指令値qrefに応じた制御電流を各関節部のアクチュエータ5に出力することで、各関節部を駆動する。高速周期演算部4は、上記算出した最適解(収束解)q(ドット)と対応する干渉候補リストL及びタスクリストLをバッファに書き込む(ステップS209)。なお、低速周期演算部3及び高速周期演算部4は、上記凸2次計画問題の最適解q(ドット)を求解しているが、これに限定されず、例えば、最適解q(2ドット)を求解してもよい。
以上、本実施形態に係るロボット制御装置1において、低速周期演算部3は、更新したタスクリストとロボット100の姿勢情報とタスクの目標値とに基づいて、等式制約条件を設定し、干渉候補リストを、ロボット100の姿勢情報と環境センサ2からの環境情報とに基づいて更新し、該更新した干渉候補リストとロボット100の姿勢情報とに基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、最適化問題を、低速周期で求解し最適解を算出する。同時に、高速周期演算部4は、ロボット100の姿勢情報と、タスクの目標値と、低速周期演算部3からのタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、ロボット100の姿勢情報と、タスクの目標値と、低速周期演算部3からの干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、低速周期演算部3により算出された最適解又は前回周期の最適解を初期値として最適化問題を、高速周期で求解し、最適解を算出し、該算出した最適解に基づいてロボット100の姿勢情報を算出する。制御部6は、高速周期演算部4により算出された姿勢情報に基づいてロボット100を制御する。
これにより、低速周期演算部3は、タスクリスト及び干渉候補リストを更新して大域的にかつ低速周期で最適化問題を解くことができる。同時に、高速周期演算部4はタスクリスト及び干渉候補リストを更新せずに低速周期演算部3の最適解または前回周期の最適解近傍から開始して効率的にかつ高速周期で最適化問題を解くことができる。したがって、高速な制御周期が実現できつつ、タスクの追従性が良好にできる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
本発明は、例えば、図5及び図6に示す処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
1 ロボット制御装置、2 環境センサ、3 低速周期演算部、4 高速周期演算部、5 アクチュエータ、6 制御部

Claims (7)

  1. ロボット周囲の環境情報を取得する環境情報取得手段と、
    前記ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、前記環境情報取得手段により取得された環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出する低速周期演算手段と、
    前記ロボットの姿勢情報と、前記タスクの目標値と、前記低速周期演算手段からのタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記低速周期演算手段からの干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記低速周期演算手段により算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出する高速周期演算手段と、
    前記高速周期演算手段により算出された姿勢情報に基づいて前記ロボットを制御する制御手段と、
    を備えることを特徴とするロボット制御装置。
  2. 請求項1記載のロボット制御装置であって、
    前記低速周期演算手段は、前記求解した最適化問題の最適解と、対応する前記タスクリスト及び干渉候補リストと、を記憶する記憶部を有し、
    前記高速周期演算手段は、
    前記記憶部に前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、が存在するとき、前記記憶部から読み込んだ前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、に基づいて、前記最適化問題を求解し、
    前記記憶部に前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、が存在しないとき、前回周期の前記最適化問題の最適解と、前記対応するタスクリスト及び干渉候補リストと、に基づいて、前記最適化問題を求解する、
    ことを特徴とするロボット制御装置。
  3. 請求項1又は2記載のロボット制御装置であって、
    前記高速周期演算手段は、ウォームスターティング付きのアクティブセット法を用いて、前記最適化問題を求解し、
    前記低速周期演算手段は、内点法を用いて前記最適化問題を求解する、
    ことを特徴とするロボット制御装置。
  4. 請求項1乃至3のうちいずれか1項記載のロボット制御装置であって、
    前記ロボットの姿勢情報は、現状の前記ロボットのベースフレームの位置姿勢と、前記ロボットの関節角度と、を含む、ことを特徴とするロボット制御装置。
  5. 請求項1乃至4のうちいずれか1項記載のロボット制御装置であって、
    前記最適化問題の最適解は、前記ロボットの姿勢情報の微分値である、ことを特徴とするロボット制御装置。
  6. ロボット周囲の環境情報を取得するステップと、
    前記ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、前記取得された環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出するステップと、
    前記ロボットの姿勢情報と、前記タスクの目標値と、前記設定されたタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記設定された干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出するステップと、
    前記算出された姿勢情報に基づいて前記ロボットを制御するステップと、
    を含む、ことを特徴とする制御方法。
  7. ロボットが達成するタスク情報を含むタスクリストを更新し、該更新したタスクリストと、前記ロボットの姿勢情報と、前記ロボットが実行するタスクの目標値と、に基づいて、等式制約条件を設定し、前記ロボットが環境と接触する候補を含む干渉候補リストを、前記ロボットの姿勢情報と、取得された前記ロボット周囲の環境情報と、に基づいて更新し、該更新した干渉候補リストと、前記ロボットの姿勢情報と、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記ロボットの逆運動学の最適化問題を、第1周期で求解し、該最適化問題の最適解を算出する処理と、
    前記ロボットの姿勢情報と、前記タスクの目標値と、前記設定されたタスクリスト又は前回周期のタスクリストと、に基づいて等式制約条件を設定し、前記ロボットの姿勢情報と、前記設定された干渉候補リスト又は前回周期の干渉候補リストと、に基づいて不等式制約条件を設定し、該設定した等式制約条件及び不等式制約条件に基づいて、前記算出された最適解又は前回周期の最適解を初期値として前記ロボットの逆運動学の最適化問題を、前記第1周期より高速の第2周期で求解し、前記最適化問題の最適解を算出し、該算出した最適解に基づいて前記ロボットの姿勢情報を算出する処理と、
    前記算出された姿勢情報に基づいて前記ロボットを制御する処理と、
    をコンピュータに実行させる、ことを特徴とする制御プログラム。
JP2015029839A 2015-02-18 2015-02-18 ロボット制御装置、制御方法、及び制御プログラム Active JP6398777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015029839A JP6398777B2 (ja) 2015-02-18 2015-02-18 ロボット制御装置、制御方法、及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015029839A JP6398777B2 (ja) 2015-02-18 2015-02-18 ロボット制御装置、制御方法、及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2016150419A JP2016150419A (ja) 2016-08-22
JP6398777B2 true JP6398777B2 (ja) 2018-10-03

Family

ID=56695747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015029839A Active JP6398777B2 (ja) 2015-02-18 2015-02-18 ロボット制御装置、制御方法、及び制御プログラム

Country Status (1)

Country Link
JP (1) JP6398777B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024203004A1 (ja) * 2023-03-29 2024-10-03 ソニーグループ株式会社 自律移動体及び動作制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2764838B1 (fr) * 1997-06-20 2000-06-02 Deutsch Zentr Luft & Raumfahrt Procede de commande d'un manipulateur
JP2004167666A (ja) * 2002-08-30 2004-06-17 Sony Corp ロボット装置及びその動作制御方法
JP3972854B2 (ja) * 2003-04-10 2007-09-05 ソニー株式会社 ロボットの運動制御装置
JP2009032189A (ja) * 2007-07-30 2009-02-12 Toyota Motor Corp ロボットの動作経路生成装置
US8386080B2 (en) * 2009-09-15 2013-02-26 Harris Corporation Robotic apparatus implementing collision avoidance scheme and associated methods
JP5465137B2 (ja) * 2010-04-22 2014-04-09 本田技研工業株式会社 ロボットおよび制御システム
JP2013184233A (ja) * 2012-03-06 2013-09-19 Toyota Motor Corp ロボットおよびその軌道生成方法

Also Published As

Publication number Publication date
JP2016150419A (ja) 2016-08-22

Similar Documents

Publication Publication Date Title
US10065306B2 (en) Traveling robot, motion planning method for traveling robot, and storage medium storing program for traveling robot
Lu et al. Collision-free and smooth joint motion planning for six-axis industrial robots by redundancy optimization
Petrič et al. Smooth continuous transition between tasks on a kinematic control level: Obstacle avoidance as a control problem
WO2018107851A1 (zh) 冗余机械臂的控制方法及装置
JP2023513841A (ja) 産業ロボット用の衝突回避モーション計画方法
JP6567101B2 (ja) 教示方法、ロボットの動作方法、プログラム、記憶媒体、教示装置
Lee et al. Sigma hulls for gaussian belief space planning for imprecise articulated robots amid obstacles
Ding et al. Collision avoidance with proximity servoing for redundant serial robot manipulators
JP2007316942A (ja) 経路作成装置及び経路作成方法
Klingensmith et al. Closed-loop servoing using real-time markerless arm tracking
Mbakop et al. Path planning and control of mobile soft manipulators with obstacle avoidance
Navarro-Alarcon et al. Visually servoed deformation control by robot manipulators
Mazare et al. Adaptive variable impedance control for a modular soft robot manipulator in configuration space
JP7180696B2 (ja) 制御装置、制御方法およびプログラム
CN117182932B (zh) 机械臂避障动作规划方法、装置和计算机设备
Wang et al. Path planning of a 6-DOF measuring robot with a direction guidance RRT method
WO2020161910A1 (ja) 制御装置、制御方法、記録媒体
JP6398777B2 (ja) ロボット制御装置、制御方法、及び制御プログラム
Lei et al. An mpc-based framework for dynamic trajectory re-planning in uncertain environments
Afzali et al. A Modified Convergence DDPG Algorithm for Robotic Manipulation
Gu et al. Dexterous obstacle-avoidance motion control of Rope Driven Snake Manipulator based on the bionic path following
JP5776486B2 (ja) ロボット制御装置、その制御方法及びプログラム
JP2021024019A (ja) 軌道生成装置
US11872704B2 (en) Dynamic motion planning system
KR102281119B1 (ko) 강화학습을 이용한 7축 로봇 제어 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R151 Written notification of patent or utility model registration

Ref document number: 6398777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151