JP2017213631A - ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム - Google Patents
ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム Download PDFInfo
- Publication number
- JP2017213631A JP2017213631A JP2016108425A JP2016108425A JP2017213631A JP 2017213631 A JP2017213631 A JP 2017213631A JP 2016108425 A JP2016108425 A JP 2016108425A JP 2016108425 A JP2016108425 A JP 2016108425A JP 2017213631 A JP2017213631 A JP 2017213631A
- Authority
- JP
- Japan
- Prior art keywords
- joint
- robot arm
- control device
- function
- joint angle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】ロボットの仕様等を満足するロボットアームの動作軌道を生成する制御装置の提供。【解決手段】制御装置1は、関節を有するロボットアーム20の目標状態を入力する入力部10と、ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを記憶した仕様データ記憶部15と、ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した関節角軌道関数を記憶した関節角軌道関数記憶部13と、関節角軌道に対して所定のコストを与えるコスト関数記憶部16と、目標状態と関節の駆動角度が最大駆動角度以下かつ関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、コスト関数を最小化する関節角軌道関数のパラメータを求める最適解計算部11と、最適解計算部11にて求めたパラメータに対応する制御命令をロボットアーム20に対して出力する出力部12とを備える。【選択図】図2
Description
本発明は、ロボットアームの動作軌道を生成する制御装置に関する。
従来から、工場においては、部品の組み立てなどを行うロボットが導入されている。こうした産業用のロボットは、同じ動作を繰り返し行うロボットである。ロボットがどのように動作すればよいかを、専門技術者があらかじめロボットの動作を手動設計することが一般的である。このような動作設計は、「ティーチング」と呼ばれており、例えば、特許文献1は、効率的にティーチングを行う方法を開示している。
近年では、例えば、会社の受付けや、介護やリハビリの支援といった生活、医療、福祉等の分野にロボットの用途が拡大している。こうしたロボットでは、専門知識のないユーザが、ティーチングによってロボットの動作を設計することは困難である。
ユーザが目標の状態を指示するだけで、目標の状態までの動きをロボットが自動決定するようにできれば、専門知識のないユーザにとって便利である。
ここで、ロボットアームの関節の動きを例として、ロボットアームの動作計画を求める従来法について説明する。まず、ロボットアームの関節角度、関節の角速度、駆動トルクの変化を離散化して微小時間区間毎に変数とする。そして、各変数が全ての時刻で運動方程式を満たすこと(ある時刻での関節角度、角速度、駆動トルクと、次の時刻での関節角度、角速度、駆動トルクとの関係が、物理法則から外れていない値になっていないか等)と、各変数がハードウェアの要件を満たすこと(関節角度は所定値以上にならないこと、所定値以上の駆動トルクは出せないこと等)を制約条件として、ロボットアームの軌道を求める。
しかし、この方法だと、時間方向に離散化して得られた膨大な変数が運動方程式を満たす必要があるため、現実的な計算量では解けない。
本発明は、ハードウェアの仕様等を満足するロボットアームの動作軌道を生成し、当該軌道にしたがって制御を行うロボットアーム制御装置を提供することを目的とする。
本発明のロボットアームの制御装置は、関節を有するロボットアームの目標状態を入力する入力部と、前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを記憶した仕様データ記憶部と、前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を記憶した関節角軌道関数記憶部と、前記関節角軌道に対して所定の制御方針に従ってコストを与えるコスト関数を記憶したコスト関数記憶部と、前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算部と、前記最適解計算部にて求めたパラメータに対応する制御命令をロボットアームに対して出力する出力部とを備える。
このようにロボットアームの関節角軌道を、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関数で表し、コストを最小化する関節角軌道のパラメータを所定の制約条件下で求める構成により、パラメータ数を大幅に削減して、現実的な計算量で関節角軌道を求めることができる。関節角軌道を表す関数は、任意の基底関数を線形結合したものなので、生成されるロボットアームの軌道の自由度が高い。
本発明のロボットアームの制御装置において、前記最適解計算部は、前記制御区間内の複数の離散点において制約条件を満たすパラメータを求めてもよい。この構成により、制約付きの最適化問題を適切に解くことができる。
本発明のロボットアームの制御装置において、前記仕様データ記憶部は、関節の角速度の最大角速度のデータを記憶しており、前記最適解計算部は、関節の角速度が前記最大角速度以下であることも制約条件として、前記パラメータを求めてもよい。
この構成により、例えば、安全性等の理由から、関節の角速度について制限がある場合に、条件を満たす適切な軌道を求めることができる。
本発明のロボットアームの制御装置において、前記入力部は、前記ロボットアームの初期状態の入力を受け付け、前記最適解計算部は、前記ロボットアームの初期状態も制約条件として、前記パラメータを求めてもよい。この構成により、前記ロボットアームの初期状態をも満たす軌道を求めることができる。
本発明のロボットアームの制御装置は、前記関節の駆動トルクを除く制約条件の下で、前記ロボットアームを前記目標状態へ最短時間で遷移させるパラメータを計算する最短動作時間計算部を備え、前記最適解計算部は、前記最短動作時間計算部にて求めたパラメータを初期値として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求めてもよい。
関節の駆動トルクに関する制約条件は非凸制約であるため、コスト関数の最適解の探索に失敗する現象が発生し得る。これに対し、上に挙げた駆動トルク以外の制約条件は凸制約なので、駆動トルク以外の制約条件の下で、ロボットアームを目標状態へ最短時間で遷移させるパラメータを求めることができる。求めたパラメータを初期値として最適解計算部による計算処理を行うことで、関節角軌道関数のパラメータの最適解が得られる可能性を高めることができる。
本発明のロボットアーム制御装置は、前記最短動作時間計算部で求めた関節角軌道が、駆動トルクの制約条件を満たすか否かを判定し、駆動トルクの制約条件を満たすと判定された場合には、前記最適解計算部による処理を行わないで前記最短動作時間計算部で求めたパラメータを最適解とし、駆動トルクの制約条件を満たさないと判定された場合には、前記最適解計算部による処理を行ってもよい。
このように最短動作時間計算部で求めたパラメータが駆動トルクの制約条件を満たすかチェックする構成により、最短動作時間計算部で求めたパラメータが駆動トルクの制約条件も満たす場合には、最適解計算部による計算処理を行わなくてもよいので、計算コストを大幅に低減できる。
本発明のロボットアーム制御方法は、関節を有するロボットアームを制御装置によって制御する方法であって、前記制御装置に、前記ロボットアームの目標状態を入力するステップと、前記制御装置が、仕様データ記憶部から、前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを読み出すステップと、前記制御装置が、関節角軌道関数記憶部から、前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を読み出すステップと、前記制御装置が、コスト関数記憶部から、前記関節角軌道に対して所定の制御方針に従ってコストを与えるコスト関数を読み出すステップと、前記制御装置が、前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算ステップと、前記制御装置が、前記最適解計算ステップにて求めたパラメータに対応する制御命令をロボットアームに対して出力するステップとを備える。
本発明のプログラムは、関節を有するロボットアームを制御するためのプログラムであって、コンピュータに、前記ロボットアームの目標状態を入力するステップと、仕様データ記憶部から、前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを読み出すステップと、関節角軌道関数記憶部から、前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を読み出すステップと、コスト関数記憶部から、前記関節角軌道に対して所定の制御方針に従ってコストを与えるコスト関数を読み出すステップと、前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算ステップと、前記最適解計算ステップにて求めたパラメータに対応する制御命令をロボットアームに対して出力するステップとを実行させる。
本発明によれば、現実的な計算量で、関節角や駆動トルク等の制約を満たすロボットアームの関節角軌道を求めることができる。
以下、本発明の実施の形態に係るロボットアーム制御装置について、図面を参照して説明する。
(第1の実施の形態)
図1は、本実施の形態のロボットアーム20の外観を示す図である。ロボットアーム20は、ロボットアーム20を床面や机等の設置面に載置するためのベースユニット21に、6つの関節を持つアーム22が取り付けられている。各関節は所定の関節角の範囲で回転する。ロボットアーム20の状態は、各関節の回転角度(q1,q2,q3,q4,q5,q6)及び回転角速度
で規定することができる。
(第1の実施の形態)
図1は、本実施の形態のロボットアーム20の外観を示す図である。ロボットアーム20は、ロボットアーム20を床面や机等の設置面に載置するためのベースユニット21に、6つの関節を持つアーム22が取り付けられている。各関節は所定の関節角の範囲で回転する。ロボットアーム20の状態は、各関節の回転角度(q1,q2,q3,q4,q5,q6)及び回転角速度
で規定することができる。
ロボットアーム20のベースユニット部分には、ロボットアーム制御装置1(図2参照)が内蔵されている。ロボットアーム制御装置1は、ロボットアーム制御装置1は、ユーザからロボットアーム20の初期状態と目標状態とが入力されると、初期状態から目標状態にロボットアーム20を動かす最適な軌道を生成し、その軌道でロボットアーム20を動かすための制御命令をロボットアーム20の各関節の駆動モータに対して送信する。
図2は、ロボットアーム制御装置1の構成を示す図である。ロボットアーム制御装置1は、入力部10と、最適解計算部11と、出力部12とを有している。これら各部の一部または全部は、ハードウェアで構成されてもよいし、コンピュータのプロセッサが所定のプログラムを実行することによって実現されてもよい。また、ロボットアーム制御装置1は、関節角軌道を表す関数を記憶した関節角軌道関数記憶部13と、ロボットアーム20の運動方程式を記憶した運動方程式記憶部14と、ロボットアーム20の仕様に関するデータを記憶した仕様データ記憶部15と、ロボットアーム20を動作させる際の制御方針に基づくコスト関数を記憶したコスト関数記憶部16を有している。
この関節角軌道関数のパラメータa0,a1,a2,・・・anを求めることにより、関節角軌道関数を決定することができる。なお、q(t)は各関節の角度を示すベクトルであり、本実施の形態のように6つの関節を有する場合には、q(t)=(q1(t),q2(t),q3(t),q4(t),q5(t),q6(t))である。関節角軌道関数のパラメータa0,a1,a2,・・・anは、6つの関節のそれぞれについて決定されるので、合計で(n+1)×6個のパラメータを決定することになる。従来は、数千ものパラメータを求めなければならなかったのに対し、本実施の形態では、パラメータ数を大幅に減らすことができる。
ロボットアーム20の運動方程式は、τを関節のトルク、Mをアームの慣性行列、Cを遠心力・コリオリ力を表す行列、Gを重力の影響を表すベクトルとして、次式(2)で表される。
運動方程式記憶部14には、制御対象のロボットアーム20の腕の長さや重さ等に基づいて、あらかじめ計算によって求めたM,C,Gのデータが記憶されている。
仕様データは、ロボットアーム20のハードウェアの仕様や動作条件などのデータである。具体的に、ハードウェアの仕様としては、各関節がどの程度動くかを示す最大関節角度のデータ、各関節の最大駆動トルクのデータがある。また、安全性等の観点から設定される動作条件としては、関節角速度や関節角加速度の制限がある。また、複数のロボットアーム20を使用する場合には、動作条件として、衝突防止等のために軌道の形状の限定を設定してもよい。
コスト関数は、ロボットアーム20の制御方針に基づいて関節角軌道にコストを与える関数である。例えば、目標状態に早く遷移することを制御方針とするなら目標状態に向かって早く移動するほどコストを小さくする関数、低消費エネルギーを制御方針とするならトータルの駆動トルクが小さくなるほどコストを小さくする関数といったように、制御方針によってコスト関数が定められる。次式(3)は、目標状態との差の積分をコストとしており、目標状態に近づく動きをするほどコストが低くなるコスト関数の一例である。
入力部10は、ロボットアーム20の初期状態及び目標状態の情報を入力する機能を有する。入力部10は、例えば、カメラであってもよく、カメラで撮影した映像を解析して、ユーザが指さす場所を初期位置、目標位置と認識してもよい。この場合には、初期速度および目標速度は0とすることで、初期状態、目標状態を規定できる。入力部10は、キーボードやマウスであってもよく、キーボードから初期状態(初期位置および初期速度)と、目標状態(目標位置と目標速度)とを入力してもよい。
最適解計算部11は、入力された初期状態から目標状態まで、ロボットアーム20を動かすための最適な軌道を求める機能を有する。最適解計算部11は、ハードウェアの仕様や動作条件などを制約として、ロボットアーム20を初期状態から目標状態まで動かす最適な軌道を制約付き最適化問題として解く。次式(4)は、最適解計算部11が計算を行う制約付き最適化問題を示す。次式は、「s.t.」で示す制約条件の下で、コスト関数Jを最小化するパラメータAの最適解を求める問題である。
条件(i)と条件(ii)は初期状態の制約であり、条件(i)が初期状態の関節角度、条件(ii)が初期状態の関節角速度が入力された値に等しいことを条件としている。条件(iii)と条件(iv)は目標状態の制約であり、条件(iii)が目標状態の関節角度、条件(iv)が目標状態の関節角速度が入力された値に等しいことを条件としている。
条件(v)は、制御区間t0からtfにおいて、関節角度が所定の角度範囲にあることを条件としている。条件(vi)は、制御区間t0からtfにおいて、関節角速度が所定の角速度範囲にあることを条件としている。ここでは、連続時間[t0,tf]に有限個の離散点をつくり、各点で制約を満たすことを条件としている。なお、制約条件は、制御区間の全区間において満たすべきであるが、ここでは、最適解算出を行えるように、連続時間[t0,tf]に有限個の離散点をつくり、各点で制約を満たすことを条件とした。これは離散化の一例であり、連続時間[t0,tf]についての不等式制約を離散化する方法は、他の方法を採用してもよい。
条件(vii)は、駆動トルクが制御区間t0からtfにおいて所定のトルク範囲内にあることを条件としている。ここで、関節角の軌道に従ってロボットアームを動作させるための駆動トルクは、数式(2)で示した運動方程式から求めることができる。これは、「逆動力学計算」と呼ばれる。
逆動力学計算は、関節数が多い場合には、計算が非常に重くなるので、本実施の形態では、再帰計算式を用いた逆動力学計算アルゴリズムを用いて、計算量の低減を図る。この計算アルゴリズムは、例えば、Park, Frank C., James E. Bobrow, and Scott R. Ploen. "A Lie group formulation of robot dynamics." The International Journal of Robotics Research14.6 (1995): 609-618.に記載されている方法を採用することができる。
最適解計算部11は、式(4)に示す制約付き最適化問題を、SQP(Sequential Quadratic Programming:逐次2次計画法)、内点法などによって解く。最適解計算部11は、制約条件(i)〜(vii)の下で、コスト関数を最小化するパラメータを求めるとともに、このパラメータに対応する各関節の駆動トルクを求める。
出力部12は、最適解計算部11にて求めた駆動トルクのデータを制御命令としてロボットアーム20に送信する。
図3は、第1の実施の形態のロボットアーム制御装置1の動作を示す図である。ロボットアーム制御装置1は、ユーザから初期状態および目標状態の入力を受け付ける(S10)。初期状態は、ロボットアーム20の最初の位置および関節角速度であり、目標状態は、目標とするロボットアーム20の位置および関節角速度である。ロボットアーム20を静止した状態から静止した状態に動かす場合には、初期状態および目標状態の関節角速度は0である。
ロボットアーム制御装置1は、関節角軌道関数記憶部13から関節角軌道のデータを読み出し(S11)、運動方程式記憶部14から運動方程式のデータを読み出し(S12)、仕様データ記憶部15からハードウェアの仕様や動作条件等のデータを読み出し(S13)、コスト関数記憶部16からコスト関数を読み出す(S14)。各データの読み出しの順序は、上述した順に限られず、任意に順番を入れ替えてもよい。
ロボットアーム制御装置1は、初期状態および目標状態、関節角度、関節角速度、駆動トルクの制約条件の下で、コスト関数を最小にする関節角軌道のパラメータの最適解を求める(S15)。この際、最適解のパラメータに対応して、各関節の駆動トルクの時間的変化が、運動方程式により求まる。ロボットアーム制御装置1は、制御区間の各時刻における駆動トルクのデータにしたがって、ロボットアーム20に制御命令を送信する(S16)。これにより、ロボットアーム20が、制約条件を満たす軌道で初期状態から目標状態に動く。
第1の実施の形態のロボットアーム制御装置1は、関節角軌道関数のパラメータを、制約付きのコスト関数最適化問題として解くことにより、パラメータ数を大幅に削減して、現実的な計算量で関節角軌道を求めることができる。
また、この構成により、任意の基底関数を線形結合した形式の関節角軌道関数の最適解を求めることができるので、生成されるロボットアーム20の軌道の自由度が高く、任意の軌道を描くことができる。
また、制約条件を満たす最適解を計算することにより、例えば、遠回りを含む動作のように、人間では思いつきにくい動作を発見することができる。本出願人らは、本実施の形態のロボットアーム制御装置を用いて、1リンク、3リンク、6リンク等の様々なタイプのロボットアームの軌道をシミュレーションしたところ、制約を満たす適切な軌道を現実的な計算時間で生成できた。一例を挙げると、低駆動トルクの1リンクのアームにおいて、アームを振り上げた目標状態にするような軌道を計算したところ、アームを持ち上げることができない軌道ではなく、アームをスウィングバックして勢いをつけることによって、低トルクでアームを振り上げる軌道が求められた。
(第2の実施の形態)
図4は、第2の実施の形態のロボットアーム制御装置2の構成を示す図である。第2の実施の形態のロボットアーム制御装置2の基本的な構成は、第1の実施の形態のロボットアーム制御装置1と同じであるが、第2の実施の形態のロボットアーム制御装置2は、最短動作時間計算部17を備えている。
図4は、第2の実施の形態のロボットアーム制御装置2の構成を示す図である。第2の実施の形態のロボットアーム制御装置2の基本的な構成は、第1の実施の形態のロボットアーム制御装置1と同じであるが、第2の実施の形態のロボットアーム制御装置2は、最短動作時間計算部17を備えている。
最短動作時間計算部17は、複数の制約条件のうちの凸制約の下で、最短時間で、ロボットアーム20を初期状態から目標状態に動かす関節角軌道関数のパラメータを求める。第1の実施の形態において、初期状態(条件(i)(ii)、目標状態(条件(iii)(iv))、関節角度(条件(v))、関節角速度(条件(vi))、駆動トルク(条件(vii))の制約条件について説明したが、このうち駆動トルクの制約条件が非凸制約であり、その他は凸制約である。
制約条件が凸制約の場合には、パラメータの初期値の設定によらず、解が一意に求まることが知られている(線形計画問題)。最短動作時間計算部17は、凸制約のみを制約条件として、最適解計算処理を行って、関節角軌道のパラメータとその動作時間を求める。次式(5)は、最短動作時間計算部17が計算を行う制約付き最適化問題を示す。次式は、「s.t.」で示す制約条件の下で、コスト関数Jを最小化するパラメータAと初期状態から目標状態になるまでの時間tfの最適解を求める問題である。次式(5)は、上記した式(4)を、制御区間[t0,tf]を[0,1]に正規化して式変形することで得られる。なお、最短動作時間計算部17のコスト関数は、初期状態から目標状態になるまでの時間tfである。
条件(i)と条件(ii)は初期状態の制約であり、条件(i)が初期状態の関節角度、条件(ii)が初期状態の関節角速度が入力された値に等しいことを条件としている。条件(iii)と条件(iv)は目標状態の制約であり、条件(iii)が目標状態の関節角度、条件(iv)が目標状態の関節角速度が入力された値に等しいことを条件としている。
条件(v)は、正規化された区間0から1において、関節角度が所定の角度範囲にあることを条件としている。条件(vi)は、正規化された区間0から1において、関節角速度が所定の角速度範囲にあることを条件としている。条件(vii)は、初期状態から目標状態に至る時間に関する制約であり、目標時刻の探索範囲制限を追加するものである。
最短動作時間計算部17は、式(5)に示す凸制約のみの制約付き最適化問題を解いて、関節角軌道のパラメータとその動作時間を求める。式(5)に示すように、初期状態から目標状態までの時間tfをコスト関数としているので、最短動作時間計算部17による計算で、初期状態から目標状態までの動作時間が最短となる軌道が求められる。ただし、駆動トルクの制約をつけていないので、駆動トルクに関しては無制限に大きくできるという前提である。以上が、最短動作時間計算部17が行う計算処理である。
図5は、第2の実施の形態のロボットアーム制御装置2の動作を示す図である。第2の実施の形態のロボットアーム制御装置2が、初期状態及び目標状態の入力を受け付けて(S20)、その後、関節角軌道関数、運動方程式、仕様データ、コスト関数を記憶部から読み出すまでの処理は(S21〜S24)、第1の実施の形態のロボットアーム制御装置1の動作と同じである(S10〜S14)。第2の実施の形態においては、ロボットアーム制御装置2は、凸制約の制約条件、具体的には、式(5)に示す条件(i)〜(v)及び(vii)を満たす最短動作時間の軌道を計算する(S25)。
続いて、最適解計算部11は、最短動作時間計算部17によって求めた関節角軌道から、逆動力学計算により、各関節の駆動トルクを求め、駆動トルクが制約条件(ハードウェア仕様)を満たしているかどうか判定する(S26)。この結果、駆動トルクが制約条件を満たしている場合には(S26でYES)、最短動作時間計算部17で求めたパラメータが最適解であり、これに対応する駆動トルクに基づいて、ロボットアーム20に制御命令を出す(S27)。
最短動作時間計算部17で求めた関節角軌道が、駆動トルクの制約条件を満たしていない場合には(S26でNO)、最適解計算部11が凸制約の制約条件に加えて、非凸制約である駆動トルクの制約条件を加えて、最適解計算処理を行う(S27)。このとき、最適解計算部11は、最短動作時間計算部17にて求めたパラメータを初期値として用いて、最適化計算を行う。この計算は、第1の実施の形態と同様に、SQPや内点法を用いて行う。なお、最短動作時間計算部17にて求められた動作時間は、駆動トルクの制約をつけずに求めた動作時間なので、トルク制約をつけた場合の最適解の制御時間tは、最短動作時間計算部17にて求まった時間tf以上になる。したがって、最適解計算部11は、制御時間tf以上の範囲で最適解を求めればよい。
最適解計算部11が最適解のパラメータを求めると、これに対応する駆動トルクに基づいて、ロボットアーム20に制御命令を出す(S28)。
以上、第2の実施の形態のロボットアーム制御装置2について説明した。第2の実施の形態のロボットアーム制御装置2は、制約条件を満たす最適解を求める際に、まず、最短動作時間計算部17にて、凸制約の制約条件の下で、ロボットアーム20を初期状態から目標状態へと最短時間で動かす関節角軌道関数のパラメータを求める。その上で、その関節角軌道のパラメータが非凸制約である駆動トルクの制約をも満たしている場合には、最短動作時間計算部17にて求めたパラメータをそのまま最適解として用いることができ、非凸制約の制約条件化での計算を行わなくてもよいので、計算処理を大幅に減らすことができる。
非凸制約を有する制約付き最適化問題においては、初期値に依存して、解が得られたり、得られなかったりすることがある。本実施の形態においては、最適解計算部11がコスト関数を最小にする制約付き最適化を行う場合には、最短動作時間計算部17で求めたパラメータを初期値として用いることにより、最適解が得られる可能性が高くなる。
また、目標状態の時刻tfの指定が短すぎると、解が存在しない問題になってしまうことがあるが、本実施の形態では、凸制約の制約条件の下で最短動作時間を計算しておくことにより、最短動作時間かそれ以上の範囲で解を探索すれば、解が存在しないという事態を回避することができる。
以上、本発明のロボットアーム制御装置およびロボットアーム制御方法について、実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
上記した実施の形態では、初期状態、目標状態、関節角度、関節角速度、駆動トルクを制約条件として用いる例を挙げたが、これらのすべてを制約条件としなくてもよい。関節角度や駆動トルクはロボットアームの固有のハードウェア仕様なので、制約条件から省くことは困難であるが、例えば、動作条件に関係する関節角速度は、必ずしも制約条件として用いなくてもよい。逆に、上記に例示した制約条件以外を制約条件として用いてもよい。
上記した実施の形態では、入力部から初期状態を入力する例を挙げたが、ロボットアームの現在状態を初期状態として用いる場合には、入力部から初期状態を入力する必要はない。
本発明のロボットアーム制御装置は、初期状態から目標状態に至るロボットアームの軌道を自動生成するので、近年、その用途が拡大しているロボットの制御技術として有用である。特に、低トルク出力アームの性能を引き出す用途や、カメラ等のセンサと連携した多関節ロボットアーム制御の高効率化に有用である。
1,2 ロボットアーム制御装置
10 入力部
11 最適解計算部
12 出力部
13 関節角軌道関数記憶部
14 運動方程式記憶部
15 仕様データ記憶部
16 コスト関数記憶部
17 第1計算処理部
18 第2計算処理部
20 ロボットアーム
10 入力部
11 最適解計算部
12 出力部
13 関節角軌道関数記憶部
14 運動方程式記憶部
15 仕様データ記憶部
16 コスト関数記憶部
17 第1計算処理部
18 第2計算処理部
20 ロボットアーム
Claims (8)
- 関節を有するロボットアームの制御装置であって、
前記ロボットアームの目標状態を入力する入力部と、
前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを記憶した仕様データ記憶部と、
前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を記憶した関節角軌道関数記憶部と、
前記関節角軌道に対して、所定の制御方針に従ってコストを与えるコスト関数を記憶したコスト関数記憶部と、
前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算部と、
前記最適解計算部にて求めたパラメータに対応する制御命令をロボットアームに対して出力する出力部と、
を備えるロボットアーム制御装置。 - 前記最適解計算部は、前記制御区間内の複数の離散点において制約条件を満たすパラメータを求める請求項1に記載のロボットアーム制御装置。
- 前記仕様データ記憶部は、関節の角速度の最大角速度のデータを記憶しており、
前記最適解計算部は、関節の角速度が前記最大角速度以下であることも制約条件として、前記パラメータを求める請求項1または2に記載のロボットアーム制御装置。 - 前記入力部は、前記ロボットアームの初期状態の入力を受け付け、
前記最適解計算部は、前記ロボットアームの初期状態も制約条件として、前記パラメータを求める請求項1乃至3のいずれかに記載のロボットアーム制御装置。 - 前記関節の駆動トルクを除く制約条件の下で、前記ロボットアームを前記目標状態へ最短時間で遷移させるパラメータを計算する最短動作時間計算部を備え、
前記最適解計算部は、前記最短動作時間計算部にて求めたパラメータを初期値として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める請求項1乃至4のいずれかに記載のロボットアーム制御装置。 - 前記最短動作時間計算部で求めた関節角軌道が、駆動トルクの制約条件を満たすか否かを判定し、駆動トルクの制約条件を満たすと判定された場合には、前記最適解計算部による処理を行わないで前記最短動作時間計算部で求めたパラメータを最適解とし、駆動トルクの制約条件を満たさないと判定された場合には、前記最適解計算部による処理を行う請求項5に記載のロボットアーム制御装置。
- 関節を有するロボットアームを制御装置によって制御する方法であって、
前記制御装置に、前記ロボットアームの目標状態を入力するステップと、
前記制御装置が、仕様データ記憶部から、前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを読み出すステップと、
前記制御装置が、関節角軌道関数記憶部から、前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を読み出すステップと、
前記制御装置が、コスト関数記憶部から、前記関節角軌道に対して所定の制御方針に従ってコストを与えるコスト関数を読み出すステップと、
前記制御装置が、前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算ステップと、
前記制御装置が、前記最適解計算ステップにて求めたパラメータに対応する制御命令をロボットアームに対して出力するステップと、
を備えるロボットアーム制御方法。 - 関節を有するロボットアームを制御するためのプログラムであって、コンピュータに、
前記ロボットアームの目標状態を入力するステップと、
仕様データ記憶部から、前記ロボットアームの関節の最大駆動角度および関節の最大駆動トルクの仕様データを読み出すステップと、
関節角軌道関数記憶部から、前記ロボットアームの関節角軌道を表す関数であって、複数の基底関数にパラメータによる重み付けをして線形結合した形式を有する関節角軌道関数を読み出すステップと、
コスト関数記憶部から、前記関節角軌道に対して所定の制御方針に従ってコストを与えるコスト関数を読み出すステップと、
前記目標状態と、関節の駆動角度が前記最大駆動角度以下であることと、関節の駆動トルクが最大駆動トルク以下であることとを制約条件として、前記コスト関数を最小化する前記関節角軌道関数のパラメータを求める最適解計算ステップと、
前記最適解計算ステップにて求めたパラメータに対応する制御命令をロボットアームに対して出力するステップと、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016108425A JP2017213631A (ja) | 2016-05-31 | 2016-05-31 | ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016108425A JP2017213631A (ja) | 2016-05-31 | 2016-05-31 | ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017213631A true JP2017213631A (ja) | 2017-12-07 |
Family
ID=60576254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016108425A Pending JP2017213631A (ja) | 2016-05-31 | 2016-05-31 | ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017213631A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019155501A (ja) * | 2018-03-09 | 2019-09-19 | 株式会社日立製作所 | 軌道計画装置、軌道計画方法、及び生産システム |
JP2019197509A (ja) * | 2018-05-11 | 2019-11-14 | フューブライト・コミュニケーションズ株式会社 | 介護ロボット、介護ロボット制御方法及び介護ロボット制御プログラム |
JP2021079482A (ja) * | 2019-11-19 | 2021-05-27 | 株式会社日立製作所 | 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム |
WO2022224425A1 (ja) * | 2021-04-23 | 2022-10-27 | ファナック株式会社 | 数値制御装置及び数値制御システム |
US12138801B2 (en) | 2019-11-19 | 2024-11-12 | Hitachi, Ltd. | Trajectory plan generation device, trajectory plan generation method, and trajectory plan generation program |
-
2016
- 2016-05-31 JP JP2016108425A patent/JP2017213631A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019155501A (ja) * | 2018-03-09 | 2019-09-19 | 株式会社日立製作所 | 軌道計画装置、軌道計画方法、及び生産システム |
JP2019197509A (ja) * | 2018-05-11 | 2019-11-14 | フューブライト・コミュニケーションズ株式会社 | 介護ロボット、介護ロボット制御方法及び介護ロボット制御プログラム |
JP2021079482A (ja) * | 2019-11-19 | 2021-05-27 | 株式会社日立製作所 | 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム |
WO2021100268A1 (ja) * | 2019-11-19 | 2021-05-27 | 株式会社日立製作所 | 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム |
CN114728418A (zh) * | 2019-11-19 | 2022-07-08 | 株式会社日立制作所 | 轨道计划生成装置、轨道计划生成方法以及轨道计划生成程序 |
JP7262373B2 (ja) | 2019-11-19 | 2023-04-21 | 株式会社日立製作所 | 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム |
CN114728418B (zh) * | 2019-11-19 | 2023-09-12 | 株式会社日立制作所 | 轨道计划生成装置、轨道计划生成方法以及记录介质 |
US12138801B2 (en) | 2019-11-19 | 2024-11-12 | Hitachi, Ltd. | Trajectory plan generation device, trajectory plan generation method, and trajectory plan generation program |
WO2022224425A1 (ja) * | 2021-04-23 | 2022-10-27 | ファナック株式会社 | 数値制御装置及び数値制御システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Korayem et al. | Mathematical modeling and trajectory planning of mobile manipulators with flexible links and joints | |
Gasparetto et al. | Path planning and trajectory planning algorithms: A general overview | |
Rahimi et al. | Dynamic analysis and intelligent control techniques for flexible manipulators: a review | |
JP2009032189A (ja) | ロボットの動作経路生成装置 | |
CN103492133B (zh) | 具有运动冗余臂的工业机器人和用于控制该机器人的方法 | |
Ghorbel et al. | Modeling and set point control of closed-chain mechanisms: Theory and experiment | |
JPWO2004033159A1 (ja) | ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット | |
KR102003216B1 (ko) | 로봇을 위한 모터 제어 및/또는 조정 | |
Londhe et al. | Robust nonlinear PID-like fuzzy logic control of a planar parallel (2PRP-PPR) manipulator | |
Zhao et al. | Efficient trajectory optimization for robot motion planning | |
JP2016105686A (ja) | モータ駆動装置の制御装置、複軸モータ駆動装置の制御装置、及びモータ駆動装置の制御方法 | |
JP2017213631A (ja) | ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム | |
JP2022543926A (ja) | ロボットシステムのためのデリバティブフリーモデル学習のシステムおよび設計 | |
WO2021099948A1 (en) | Method and electronic device for controlling the movement of a humanoid robot or of a robotic arm using the least number of degrees of freedom necessary for the execution of a task and computer-readable storage medium thereof | |
Zhou et al. | Multi-objective-optimization-based control parameters auto-tuning for aerial manipulators | |
Kino et al. | 3-DOF planar parallel-wire driven robot with an active balancer and its model-based adaptive control | |
Asar et al. | ANFIS-based an adaptive continuous sliding-mode controller for robot manipulators in operational space | |
Jiang et al. | An integrated tracking control approach based on reinforcement learning for a continuum robot in space capture missions | |
Marafioti et al. | A study of nonlinear model predictive control (NMPC) for snake robot path following | |
Vladareanu et al. | Dynamic control of a walking robot using the versatile intelligent portable robot platform | |
Mousavi Mohammadi et al. | A real-time impedance-based singularity and joint-limits avoidance approach for manual guidance of industrial robots | |
Hoang et al. | Sliding mode control for parallel robots driven by electric motors in task space | |
Yu et al. | Design and implementation of a robust switching control scheme for a class of constrained robot tasks | |
JP2020110884A (ja) | ロボット制御装置、ロボット制御方法、及びロボット制御プログラム | |
CN112428275B (zh) | 机器人运动规划方法、装置、可移动机器人及存储介质 |