(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164946
(43)【公開日】2024-11-28
(54)【発明の名称】ロボット制御システム、ロボット制御方法、および、ロボット制御装置
(51)【国際特許分類】
B25J 5/00 20060101AFI20241121BHJP
B25J 13/00 20060101ALI20241121BHJP
B25J 9/10 20060101ALI20241121BHJP
【FI】
B25J5/00 E
B25J13/00 Z
B25J9/10 A
B25J5/00 C
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023080693
(22)【出願日】2023-05-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】濱崎 寛太
(72)【発明者】
【氏名】伊藤 洋
(72)【発明者】
【氏名】保富 裕二 アンドレ
(72)【発明者】
【氏名】清水 自由理
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS13
3C707BS12
3C707BS27
3C707CS08
3C707HS27
3C707KS12
3C707KT01
3C707KT05
3C707LW08
3C707LW12
3C707WA03
3C707WA14
(57)【要約】
【課題】 目標動作を達成するための腕部状態と移動部状態の組合せが多い場合でも、適切な移動部制御則を容易に取得できるロボット制御システムを提供する。
【解決手段】 腕部と移動部を有するロボットと、前記ロボットを制御する制御装置と、を有するロボット制御システムであって、前記制御装置は、前記腕部の動作に関する目標動作および前記目標動作に応じた前記移動部の動作の許容範囲を出力する動作計画部と、前記目標動作に関する腕制御指令および腕部状態遷移を出力する腕制御部と、前記腕部状態遷移を用い、前記許容範囲に収まるように前記移動部の動作に関する移動制御指令を生成する移動制御部と、を備え、前記ロボットは、前記腕部が前記腕制御指令により制御され、前記移動部が前記移動制御指令により制御されることを特徴とするロボット制御システム。
【選択図】
図1
【特許請求の範囲】
【請求項1】
腕部と移動部を有するロボットと、
前記ロボットを制御する制御装置と、
を有するロボット制御システムであって、
前記制御装置は、
前記腕部の動作に関する目標動作および前記目標動作に応じた前記移動部の動作の許容範囲を出力する動作計画部と、
前記目標動作に関する腕制御指令および腕部状態遷移を出力する腕制御部と、
前記腕部状態遷移を用い、前記許容範囲に収まるように前記移動部の動作に関する移動制御指令を生成する移動制御部と、
を備え、
前記ロボットは、前記腕部が前記腕制御指令により制御され、前記移動部が前記移動制御指令により制御されることを特徴とするロボット制御システム。
【請求項2】
前記動作計画部は、前記許容範囲に前記移動部の動作の目標軌道を生成し、
前記移動制御部は、前記目標軌道との誤差が小さくなるように前記移動制御指令を生成することを特徴とする、請求項1に記載のロボット制御システム。
【請求項3】
前記ロボットの前記移動部は、脚部または回転翼を有し、
前記移動制御部は、前記脚部の関節または前記回転翼の状態に関する前記移動制御指令を生成することを特徴とする、請求項1に記載のロボット制御システム。
【請求項4】
前記腕制御部は、前記腕制御指令の状態遷移を用いて将来の腕制御指令を予測することにより前記腕部状態遷移を生成することを特徴とする、請求項1に記載のロボット制御システム。
【請求項5】
前記許容範囲は、前記移動部または前記腕部のエンドエフェクタの状態に対する下限と上限の少なくとも一方を設定することで生成されることを特徴とする、請求項1に記載のロボット制御システム。
【請求項6】
前記移動部または前記エンドエフェクタの状態は、位置、回転、並進速度、回転速度、並進加速度、回転加速度、並進加加速度、回転加加速度のいずれかであることを特徴とする、請求項5に記載のロボット制御システム。
【請求項7】
前記移動制御部は、前記許容範囲の中で前記移動部または前記エンドエフェクタの状態が変動する大きさを調整する重み行列に基づいて前記移動制御指令を生成することを特徴とする、請求項5に記載のロボット制御システム。
【請求項8】
前記許容範囲に関する情報を入力する許容範囲入力部と、
前記許容範囲を用いて前記ロボットが制御された結果を基に表示情報を演算する演算部と、
前記表示情報を表示する表示部と、
を備えることを特徴とする、請求項1に記載のロボット制御システム。
【請求項9】
前記表示情報は、
前記許容範囲、前記移動部又は腕部の状態、前記ロボットが消費した電力、前記腕部の前記目標動作の完了時間の予測のいずれかを含むことを特徴とする、請求項8に記載のロボット制御システム。
【請求項10】
前記許容範囲に関する情報には、許容範囲を設定する移動部または前記腕部のエンドエフェクタの状態、許容範囲の上限、許容範囲の下限のいずれかが含まれることを特徴とする、請求項8に記載のロボット制御システム。
【請求項11】
前記腕部の動作に関する腕部動作指令を入力する腕部動作指令入力部と、
前記移動部の動作の許容範囲を入力する移動部動作指令入力部と、
情報を取得するセンサと、
前記センサが取得した情報を表示する表示部と、を有し、
前記腕制御部は、前記腕部動作指令に関する腕制御指令と腕部状態遷移を生成することを特徴とする、請求項1に記載のロボット制御システム。
【請求項12】
腕部と移動部を有するロボットを制御するロボット制御方法であって、
前記腕部の動作に関する目標動作および前記目標動作に応じた前記移動部の動作の許容範囲を出力する動作計画ステップと、
前記目標動作に関する腕制御指令および腕部状態遷移を出力する腕制御ステップと、
前記腕部状態遷移を用い、前記許容範囲に収まるように前記移動部の動作に関する移動制御指令を生成する移動制御ステップと、
前記腕制御指令により前記腕部を制御し、前記移動制御指令により前記移動部を制御するロボット制御ステップと、
を備えることを特徴とするロボット制御方法。
【請求項13】
腕部と移動部を有するロボットを制御する制御装置であって、
前記腕部の動作に関する目標動作および前記目標動作に応じた前記移動部の動作の許容範囲を出力する動作計画部と、
前記目標動作に関する腕制御指令および腕部状態遷移を出力する腕制御部と、
前記腕部状態遷移を用い、前記許容範囲に収まるように前記移動部の動作に関する移動制御指令を生成する移動制御部と、
を備えることを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボット制御方法、および、ロボット制御装置に関する。
【背景技術】
【0002】
近年、少子高齢化に伴う労働力不足や、災害区域での危険作業などが社会課題となっている。それらの解決へ向け、ロボットが安全かつ効率的に作業できるように整備された工場等の環境以外(以下、「非整備環境」と呼ぶ)においても、様々な作業へのロボットの活用が期待されている。
【0003】
災害区域等の非整備環境下で、腕部と移動部を有するロボットが自律的に作業を遂行するには、操作対象物を巧みに操作する腕制御に加え、操作対象物の近傍まで適切に移動する移動制御が要求される。それらを実現したロボットとしては、例えば、マニピュレータを装備した、2輪駆動台車、クローラ型ロボット、四脚型ロボット、人型ロボット(ヒューマノイド)、無人航空機(UAV)などが挙げられる。
【0004】
この種のロボットの一例としては、非特許文献1の移動型マニピュレータが知られている。非特許文献1では、移動型マニピュレータ(Legged Mobile Manipulator)の腕制御器(arm controller)と移動制御器(base controller)を別途用意し、腕の挙動に基づく移動部の制御則(制御指令)を深層強化学習(Deep reinforcement learning)により取得するロボット制御方法を提案している。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Y. Ma, F. Farshidian, T. Miki, J. Lee and M. Hutter, "Combining Learning-based Locomotion Policy with Model-based Manipulation for Legged Mobile Manipulators," arXiv:2201.03871v1, 2022.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非整備環境でロボットが行う目標動作は多様であり、例えば、操作対象物の把持・運搬・設置、扉の開閉、レバー操作などの操作対象物の位置又は姿勢を変化させる動作や、溶接・塗装・切断・組立などの操作対象物を加工する動作などがある。
【0007】
非特許文献1では、腕制御器と移動制御器が独立しているため、腕部に新たな目標動作を実行させる場合には、腕制御器の制御則を変更するだけで対応することができた。また、腕部の制御測の変更には、既に確立されている腕部の動作生成技術を活用できるため、比較的簡単に新たな目標動作を実装することができた。
【0008】
しかしながら、非特許文献1の移動部の制御方法には、移動部の制御則を学習する際に考慮した条件下でしか、移動部を安定して制御できないという問題があった。したがって、目標動作を実行する際の腕部状態と移動部状態の組合せが多い場合には、移動部の適切な制御則を取得することが困難となる。例えば、腕部の到達範囲を広げるために移動部の姿勢を変化させるような制御を実行する場合には、腕部が動作したときの慣性力の影響を含めると、考慮しなければならない状態の組合せは膨大となるため、移動部の適切な制御則を取得することが困難であった。
【0009】
そこで、本発明は、目標動作を達成するための腕部状態と移動部状態の組合せが多い場合でも、適切な移動部制御則を容易に取得できるロボット制御システム、ロボット制御方法、および、ロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明のロボット制御システムは、腕部と移動部を有するロボットと、前記ロボットを制御する制御装置と、を有するロボット制御システムであって、前記制御装置は、前記腕部の動作に関する目標動作および前記目標動作に応じた前記移動部の動作の許容範囲を出力する動作計画部と、前記目標動作に関する腕制御指令および腕部状態遷移を出力する腕制御部と、前記腕部状態遷移を用い、前記許容範囲に収まるように前記移動部の動作に関する移動制御指令を生成する移動制御部と、を備え、前記ロボットは、前記腕部が前記腕制御指令により制御され、前記移動部が前記移動制御指令により制御されるロボット制御システムとした。
【発明の効果】
【0011】
本発明のロボット制御システム、ロボット制御方法、および、ロボット制御装置によれば、目標動作を達成するための腕部状態と移動部状態の組合せが多い場合でも、適切な移動部制御則を容易に取得することができる。
【図面の簡単な説明】
【0012】
【
図1】実施例1に係るロボット制御システムの構成を説明する図。
【
図2A】ロボットの一例である四脚型ロボットを説明する図。
【
図2B】ロボットの一例である人型ロボットを説明する図。
【
図2C】ロボットの一例である無人航空機を説明する図。
【
図3】実施例1に係る腕部の目標動作について説明する図。
【
図4】実施例1に係る制御を実施したときのロボットと周辺環境の状態を説明する図。
【
図5】実施例1に係る制御を実施したときの腕部のエンドエフェクタの位置の時間変化を説明する図。
【
図6】実施例1に係る制御を実施したときの脚部の関節を駆動するモータへ出力された電力量の時間変化を説明する図。
【
図7】実施例2に係る腕部の目標動作について説明する図。
【
図8】実施例2に係るロボット制御システムの構成を説明する図。
【
図9】実施例2に係る制御を実施したときのロボットと周辺環境の状態を説明する図。
【
図10】実施例2に係る制御を実施したときの基部の移動速度の時間変化を説明する図。
【
図11】実施例2に係る制御を実施したときの脚部の関節を駆動するモータへ出力された電力量の時間変化を説明する図。
【
図12】実施例3に係るロボット制御システムの構成を説明する図。
【
図13】実施例3に係る表示部の表示例を説明する図。
【
図14】実施例4に係るロボット制御システムの構成を説明する図。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態の例について、添付図面を参照しながら説明する。本発明は以下の実施形態に限定されるものではなく、実施形態における種々の数値等は例示である。また、本明細書及び図面において、同一の構成要素又は実質的に同一の機能を有する構成要素には同一の符号を付することとし、重複する説明は省略する。
【実施例0014】
図1は、本発明の実施例1に係るロボット制御システム100の構成を説明する図である。このロボット制御システム100は、制御装置1と、ロボット2と、許容範囲入力部31を有するシステムである。制御装置1は、動作計画部11と腕制御部12と移動制御部13で構成される。この制御装置1は、具体的には、CPU等の演算装置、半導体メモリ等の主記憶装置、ハードディスク等の補助記憶装置、および、通信装置などのハードウェアを備えたコンピュータである。そして、演算装置が所定のプログラムを実行することで、動作計画部11等の各機能部を実現するが、以下では、このような周知技術を適宜省略しながら説明する。また、ロボット2は、操作対象物を操作するマニピュレータ(腕部21)と、移動時に利用する移動部22で構成される。許容範囲入力部31は、ロボット制御に必要な情報を制御装置1に入力する際にユーザーが利用する、ヒューマンマシンインターフェースである。
【0015】
図2Aは、ロボット2の一例である四脚型ロボット2Aの構成を説明する図である。この四脚型ロボット2Aは、先端にエンドエフェクタ21aを有する6関節の腕部21を1つ備える。また、四脚型ロボット2Aの移動部22には、3関節の脚部22aを4つと、腕部21と脚部22aを取り付けた基部22bを備える。
【0016】
図2Bは、ロボット2の一例である人型ロボット2Bの構成を説明する図である。この人型ロボット2Bは、先端にエンドエフェクタ21aを有する6関節の腕部21を左右に備える。また、人型ロボット2Bの移動部22には、6関節の脚部22aを2つと、腕部21と脚部22aを取り付けた基部22bを備える。
【0017】
図2Cは、ロボット2の一例である無人航空機2Cの構成を説明する図である。この無人航空機2Cは、先端にエンドエフェクタ21aを有する6関節の腕部21を1つ備える。また、無人航空機2Cの移動部22には、揚力および推力を発生させる回転翼22cを4つと、腕部21と回転翼22cを取り付けた基部22bを備える。
【0018】
四脚型ロボット2Aと人型ロボット2Bは、腕部21と脚部22aを駆動するための駆動機構が各関節に備えられている。無人航空機2Cは、腕部21を駆動するための駆動機構が各関節に備えられ、移動部22の姿勢を制御するための駆動機構が各回転翼22cに備えられている。このとき、腕部21や脚部22aの駆動部が関節数より少なく、複数の関節を1つの駆動部で制御するような機構であっても良い。また、腕部21や脚部22aが有する関節の数や、腕部21、脚部22a、回転翼22cの数は、
図2A~
図2Cの例に限定されず増減しても差し支えない。加えて、それ以外の部位(例えば、尾部など)を備えていても問題ない。また、移動部22が備える移動を実現するための機構は脚部22aや回転翼22cに限定されず、例えば、車輪やクローラであっても良い。加えて、
図1のロボット制御システム100は、ロボット2が実環境に存在する場合と仮想環境に存在する場合のいずれも考慮することができる。
【0019】
<腕部21の制御方法>
ここで、ロボット2の腕部21の制御方法について説明する。まず、制御装置1の動作計画部11は、腕部21が実施する目標動作を腕制御部12へ指令する。目標動作には、腕部21が実行可能なあらゆる動作が該当する。例えば、操作対象物の移動(把持、運搬、設置、操作など)、加工(塗装、切断、溶接、組立、払拭など)、観測(計器読取り、表面検査、外観検査など)が該当する。
【0020】
腕制御部12は、動作計画部11から指令された目標動作に基づき、それを達成するための一連動作を生成する。一連動作の生成には任意の手法を適用することができる。例えば、事前に作成したプログラムに基づくルールベースの制御手法や、学習した制御則に基づく学習型の制御手法などがある。
【0021】
腕制御部12で生成された一連動作は、任意の制御周期Taで腕制御指令C1として腕部21に入力され、腕制御指令C1に基づき腕部21が動作する。腕制御指令C1は、腕部21の各関節を回転又は並進させる指令であり、例えば、各関節の角度、角速度、角加速度(トルク)の時系列変化を指定するものである。腕制御指令C1と腕部21の実際の状態との差異や、周辺環境の状態に基づいて、腕制御部12が動作を生成する場合には、腕制御部12はロボット2が備える各種センサの情報を利用することができる。
【0022】
<移動部22の制御方法>
次に、ロボット2の移動部22の制御方法について説明する。腕部21と移動部22を備えたロボット2を対象とする場合、制御装置1の移動制御部13は、腕部21の目標動作を達成するために、動作計画部11から指令される目標状態(例えば、基部22bの位置又は姿勢)を追従するように移動部22を制御する。このとき、移動制御部13は、腕部21が動作することによる慣性力の影響を考慮して、移動部22を制御する必要がある。
【0023】
目標状態を追従するように移動部22を制御するためには、移動部22の実際の状態と目標状態との差分が小さくなる制御入力を求めればよい。制御入力ができるだけ小さくなるように問題を設定すると、所定の評価期間[t0,tf]ついて次のような最適制御問題が得られる。
【0024】
【0025】
【0026】
【0027】
ここで、φとLは評価関数、xは状態ベクトル、uは入力ベクトル、xrefは目標状態ベクトル、P,Q,Rは重み行列である。xとxrefに移動部22の状態に関する変数を含めることで目標状態を追従する制御を実現できる。また、評価関数Lに定義される項は式2の限りではない。例えば、電力消費量を評価する項や、ロボット2が自身や周辺環境との衝突を避けるための安全性を評価する項などを追加することができる。なお、目標状態ベクトルのxrefの時系列変化の軌跡によって状態ベクトルxの目標軌道を定義することができる。
【0028】
式1~3の最適制御問題を解くためには、状態ベクトルxの時間発展を推定する必要がある。そこで、式1~3の最適制御問題に対して次の制約条件を定義できる。
【0029】
【0030】
【0031】
【0032】
【0033】
ここで、式4はロボット2の動力学モデル、式5は初期条件、式6は等式制約、式7は不等式制約である。
【0034】
式1~7の最適制御問題を、ロボット2の制御開始前にオフラインで解けば、最適化された一連の制御入力を事前に求めることができる。一方で、非整備環境でロボット2を制御する場合には、動力学モデルの誤差や外乱の影響により、オフラインで事前に想定した通りに状態が遷移するとは限らない。
【0035】
そこで、本実施例では、移動制御部13が各制御周期Tlにおいて、その時刻で観測されたロボット状態を式5の初期条件とし、現時刻t0から有限時間先の時刻tfまでについて式1~7の最適制御問題を解き、得られた制御入力のうちt0における結果のみを制御指令Cとして使用する制御手法を用いることとした。この手法は一般にモデル予測制御と呼ばれる。
【0036】
以下の実施例では、一般的なモデル予測制御を用いた場合を想定して説明するが、式1~7の最適制御問題に係る別の制御手法に置き換えることも可能である。例えば、動力学モデルの誤差や外乱の影響が限りなく小さい場合や、ロボット2をシミュレータ上で制御するような場合には、式1~7の最適制御問題をオフラインで解いた結果より、一連の制御入力を決定できる。あるいは、ロボット2の重心に生じる力及びトルクを算出した後に、各関節又は回転翼22cに出力する制御入力を算出する階層的な算出方法や、式1~7の最適制御問題におけるパラメータ(重み行列、評価期間、目標状態など)の一部を機械学習により取得する方法なども採用できる。また、モデル予測制御には、微分動的計画法、Multiple shooting法などを用いた勾配ベースの手法や、モンテカルロ法や経路積分などを用いたサンプリングベースの手法があるが、いずれの手法を用いても良い。また、式1~7の最適制御問題における時刻tfの値は任意であり、大きな値を設定することで、より将来の状態を考慮した制御指令Cを算出する事ができる。一方で、移動制御部13の制御周期Tlについてtf=t0+Tlを設定し、ロボット2に対する次の制御入力とそれによる状態変化のみを考慮して制御指令Cを算出することもできる。
【0037】
以下では、具体例として、式1~7の最適制御問題を、四脚型ロボット2Aへ適用した場合について説明する。四脚型ロボット2Aを制御対象とする場合、式4における動力学モデルは次のように表すことができる。
【0038】
【0039】
【0040】
ここで、pcom、lcomは、四脚型ロボット2Aの重心の並進運動量、及び、角運動量であり、基部22bの位置xb、回転θb、並進速度vb、回転速度ωb、脚部22a及び腕部21の関節角θl及びθa、関節角速度ωl及びωaに依存する関数である。また、nl及びnaは脚部22a及び腕部21の接触点の数、rl,i及びra,iは重心から脚部22a及び腕部21の接触点iまでの長さ、fl,i及びfa,iは脚部22a及び腕部21の接触点iに生じる接触力、τl,i及びτa,iは脚部22a及び腕部21の接触点iに生じる接触トルク、mgは重力により重心に生じる力である。
【0041】
なお、動力学モデルを記述する方法は式8、9に限定されない。例えば、動力学モデルをより詳細に記述するため、式8へ遠心力やコリオリ力に関する項を追加する場合や、演算量を削減するために脚部22aの慣性力に関する項を省略する場合などを採用できる。
【0042】
また、四脚型ロボット2Aを制御対象とする場合、式6、7における等式制約と不等式制約は次のように与えることができる。
【0043】
【0044】
【0045】
【0046】
ここで、vl,iは脚部22aの接触点iの速度、fl,i
x、fl,i
y、fl,i
zは接触点iにおいて接触面に対して接線方向x、y、法線方向zに生じる力である。式10、11は接触点iが接触面を滑らないための条件を定義している。また、式6の等式制約や式7の不等式制約は四脚型ロボット2Aの性能や目標動作に応じて追加、削除することができる。例えば、脚部22aの関節角や関節角速度の上下限を不等式制約として追加することができる。
【0047】
以上に示した、四脚型ロボット2Aを制御対象とする場合における、式8、9の動力学モデルと式10~12の等式制約及び不等式制約を用い、式1~7の最適制御問題を解くことで、四脚型ロボット2Aの基部22bの状態xb、vb、θb、ωbのいずれかが目標状態xb,ref、vb,ref、θb,ref、ωb,refを追従するような、脚部22aの関節角θl(又は関節角速度ωl、関節角加速度αl)を算出し、移動制御指令C2として移動部22へ出力することができる。
【0048】
ここで、式1~7の最適制御問題に基づくモデル予測制御を実環境で行う場合には、動力学モデルや外乱の影響により、四脚型ロボット2Aや周辺環境の状態は予測値と実測値とで差異が生じる。そこで、四脚型ロボット2Aに備えられたセンサ情報(例えば、脚部22aの関節に備えられたエンコーダから取得される関節状態や、基部22bに備えられた慣性計測ユニットから取得される姿勢情報など)を移動制御部13へフィードバックし、制御指令Cの補正や式5の初期条件として利用することができる。
【0049】
さらに、式8、9の動力学モデルに現れる腕部21の関節角θa(又は関節角速度ωa、関節角加速度αa)として、腕制御部12が生成した腕部状態遷移θa
*(又は関節角速度遷移ωa
*、関節角加速度遷移αa
*)を設定するか、あるいは式1~7の最適制御問題における式6の等式制約として式13、式14、式15を追加することで、腕部21の慣性力による影響を考慮した移動制御指令C2の生成が可能となる。
【0050】
【0051】
【0052】
【0053】
ここで、式13、式14、式15のうちいずれかが省略される場合も考えられる。また腕部21のエンドエフェクタ21aに負荷が掛かる場合には、エンドエフェクタ21aに生じる力faに関する等式制約を追加することもできる。このとき、腕制御部12が腕制御指令C1を算出する過程で、例えば、腕制御部12がモデル予測制御を用いる場合や、環境状態の予測に基づく学習型制御を用いる場合のように、評価期間[t0,tf]における腕部状態遷移θa
*を取得できる場合は、取得された腕部状態遷移θa
*をそのまま移動制御部13へ出力することができる。一方で、腕制御部12が腕制御指令C1を算出する過程で、評価期間[t0,tf]における腕部状態遷移θa
*を取得しない場合には、例えば、過去の制御指令CPを参照して将来の制御指令CFを外挿することで、腕部状態遷移θa
*を推定することができる。
【0054】
式1~7の最適制御問題において式2に現れる状態変数xiの重みQiを大きく設定すると、状態変数xiの目標状態xi,refに対する追従性を高めることができる。一方で、設定されたパラメータ(重み行列、評価期間、目標状態など)に基づく最適制御問題では、移動部22の状態を目標状態へ追従させるための解が算出できない場合がある。その場合、移動部22の状態が目標状態から逸脱し、腕部21の目標動作が失敗したり、移動部22が安定姿勢を保てずに転倒したりする恐れがある。あるいは、移動部22の状態が目標状態を追従できたとしても、移動部22が目標状態を維持するために、脚部22aの関節へ大きな負担が生じ、過剰な電力を消費したり、駆動部の劣化を早めたりする場合がある。移動部22の状態が目標状態を追従でき、尚且つ駆動部への負荷が小さくなるようなパラメータを事前に調整する方法も考えられる。
【0055】
しかし、操作対象物や周辺環境の状態に関する完全な情報を事前に取得できなかったり、それらの状態が動的に変化したりするような状況では、全ての状況に対して有効なパラメータを事前に用意することは困難である。また、そのようなパラメータを、ロボット2の制御中にオンラインでリアルタイム演算することも現実的でない。
【0056】
この課題を解決するため、本実施例では、腕部21の目標動作の特性に基づいて、式1~7の最適制御問題における状態変数に対し、許容範囲を予め設定する以下の方法を提案する。
【0057】
そもそも、腕部21の目標動作を実行するうえで、移動部22の状態が目標状態を厳密に追従することは必須ではない。例えば、目標動作が操作対象物の加工であり、加工結果がある範囲内に収まっていれば要求品質を満たすような場合には、その範囲内で加工が行えるように移動部22を制御できれば十分である。また、腕制御部12がロボット2の備えるセンサの情報のフィードバックに基づいて腕部21を制御する場合も、移動部22の状態が所定範囲内に収まっていれば、移動部22の実際の状態と目標状態の差分に基づいて腕制御指令C1を補正し、目標動作を達成すれば良い。
【0058】
したがって、腕部21の目標動作の特性を考慮することにより、腕部21の目標動作を達成するための許容範囲を状態変数に対して予め設定することができる。これにより、許容範囲を満たす範囲で移動部22の状態を選択できるようになり、腕部21の目標動作を達成するための解を算出できる確率が大きくなる。更には、移動部22を制御する際の消費電力量や駆動部への負荷低減を期待することができる。
【0059】
腕部21の目標動作を達成するための、状態変数xの許容範囲設定方法は、例えば次の2つである。
【0060】
第1の許容範囲設定方法は、式1~7の最適制御問題における式7の不等式制約として、次式を追加する方法である。
【0061】
【0062】
ここで、xiは許容範囲を設定する状態変数であり、xmin及びxmaxは腕部21の動作目標を達成するために要求されるxiの下限値と上限値である。このとき、状態変数xiは移動部22の状態以外の変数でも良い。例えば、状態変数xiとして腕部21の接触点の位置又は姿勢を設定することもできる。また、複数の状態変数に対して式13の許容範囲を設定しても良い。なお、この場合の下限値xminと上限値xmaxは、許容範囲入力部31を介してユーザーが入力したものであっても良いし、機械学習などを利用して動作計画部11が自動生成したものであっても良い。
【0063】
第2の許容範囲設定方法は、式1~7の最適制御問題において、式2の評価関数における重み行列を調整する方法である。例えば、状態変数xiに関する重みQiを小さくすることで、目標状態xi,refへの追従性を小さくできるので、式1~7の最適制御問題を解いたときに式13が満たされるようにQiを設定することで、腕部21の目標動作を達成できる移動制御指令C2を算出することができる。なお、この場合の重みQiは許容範囲入力部31を介してユーザーが入力したものであっても良いし、機械学習などを利用して動作計画部11が自動生成したものであっても良い。
【0064】
また、これら2つの許容範囲設定方法を組合わせることも可能である。例えば、式13の許容範囲をxiに対して明示的に設定した後に、設定された許容範囲内でのxiの変化のし易さを、Qiを用いて調整することが可能である。
【0065】
本実施例では四脚型ロボット2Aを対象として具体例を説明したが、式4の動力学モデルや式6、7の等式制約及び不等式制約をロボット2の形態に応じて置き換えることで、ロボット2が人型ロボット2Bや無人航空機2Cである場合へも拡張することができる。
【0066】
例えば、人型ロボット2Bを制御する場合には、脚部22a及び腕部21の接点数をnl及びnaへ設定し、基部22bと頭部を纏めて胴部として扱えば、式8、式9の動力学モデルや、式10、式11、式12の制約条件をそのまま利用することができる。
【0067】
また、無人航空機2Cを制御する場合には、式4の動力学モデルを、慣性座標系における並進運動方程(式17)と、無人航空機2Cの重心を原点とした機体座標系における回転運動方程(式18)で表せば良い。
【0068】
【0069】
【0070】
ここで、pcom、lcomは、無人航空機2Cの重心の並進運動量、及び、角運動量であり、基部22bの位置xb、回転角θb、並進速度vb、回転速度ωb、腕部21の関節角θa、関節角速度ωaに依存する関数である。また、naは基部22bの接触点の数、ra,iは重心から腕部21の接触点iまでの長さ、fa,iは腕部21の接触点iに生じる接触力、τa,iは腕部21の接触点iに生じる接触トルク、mgは重力により重心に生じる力である。また、Rは機体座標系から慣性座標系に変換するための回転行列、Fw及びτwは回転翼22cの回転により無人航空機2Cへ発生する推力及びトルクである。推力Fw及びトルクτwは回転翼22cの回転数ωwの二乗に比例する。
【0071】
なお、無人航空機2Cの動力学モデルの記述方法は、式17、式18に限定されず、例えば、式17の並進運動方程式へ空気抵抗に関する項を追加したり、式18の回転運動方程式へ空気の粘性抵抗に関する項を追加したりできる。また、式6、式7における制約条件は必ずしも与える必要はないが、例えば、回転翼22cの回転数ωwの上限を式7の不等式制約として与えることができる。
【0072】
以上により、式17、式18の動力学モデルを用いて式1~7の最適制御問題を解くことで、基部22bの状態xb、vb、θb、ωbのいずれかが目標状態xb,ref、vb,ref、θb,ref、ωb,refを追従するような、無人航空機2Cの回転翼22cの回転数ωw(又は各回転翼22cの推力、各回転翼22cの角速度など)を算出し、移動部制御指令として移動部22へ出力することができる。
【0073】
<本実施例のロボット制御システムの具体的な運用>
次に、
図3から
図6を用いて、ロボット2が四脚型ロボット2Aである場合の、ロボット制御システム100の具体的な運用を説明する。
【0074】
図3は、ロボット2(四脚型ロボット2A)が壁面Wに対して水平方向(x方向)に移動しながら、腕部21が保持する塗装スプレーSで、壁面Wの塗装領域Waを塗装する目標動作について説明する図である。以下では、
図3の目標動作を例に、目標動作を達成するための許容範囲の定め方や、許容範囲を式13の不等式として式1~7の最適制御問題へ設定する方法について説明する。
【0075】
図3に示す目標動作を達成するため、制御装置1の腕制御部12は、まず、ロボット2の腕部21に対し、腕部21の関節Ja~Jd、Jfが
図3の初期状態を維持するような制御指令を与える。残りの関節Jeについては、センサ情報(基部22bの姿勢情報、視覚センサ情報など)のフィードバックに基づき、塗装スプレーSの噴射方向が壁面Wに対して常に垂直方向(y軸方向)を向くように制御指令を与える。本目標動作は、これらの制御指令を統合した腕制御指令C
1のもとで、移動部22が壁面Wに対して水平方向(x方向)へ移動する事で達成できる。ここで、塗装スプレーSの噴射口から壁面Wまでの距離が所定の範囲に収まっていれば、噴射された塗料が拡散せずに、本目標動作の要求品質を満たせるものとする。
【0076】
本目標動作の要求品質を満たすため、ロボット2の基部22bの姿勢(xbx,xby,xbz,θbx,θby,θbz)に対し、(xbx,ref,xby,ref,xbz,ref,θbx,ref,θby,ref,θbz,ref)=(vx,0t、xby,0,xbz,0,θbx,0,θby,0,θbz,0)のように目標姿勢を設定できる。このとき、xbx,refは基部22bが一定速度vx0でx方向へ移動するような目標姿勢、それ以外は初期値を維持するような目標姿勢を表している。
【0077】
加えて、塗装という目標動作の要求品質を満たすため、腕部21のエンドエフェクタ21aのy方向の位置xayに対して、式13の不等式制約としてxay,min≦xay≦xay,maxを設定できる。ここで、要求品質を満たせれば、基部22bの位置又は姿勢などの他の状態変数に対して式13の不等式制約を設定しても良い。また、壁面Wの鉛直方向(z方向)に対する塗装のズレが許容できる場合には、腕部21のエンドエフェクタ21aのz方向の位置xazに対して不等式制約xaz,min≦xaz≦xaz,maxを設定することもできる。あるいは、xayの変化による塗料の拡散も、壁面Wの鉛直方向に対する塗装のズレに影響するとして、不等式制約としてxay-z,min≦Axay+Bxaz≦xay-z,maxを設定することもできる。ここでA、Bは比例定数である。
【0078】
図1のロボット制御システム100の構成において、本目標動作を達成する手順は次の通りである。
【0079】
まず、動作計画部11が腕制御部12に対して本目標動作の実行を指令する。同時に、動作計画部11は移動制御部13に対し、基部22bに対する前記目標姿勢と、腕部21のエンドエフェクタ21aの位置に対する前記許容範囲を出力する。
【0080】
続いて、腕制御部12は、本目標動作を達成するための腕制御指令C1を制御周期Taで腕部21へ出力する。それと同時に、腕制御部12は、移動制御部13に対して、腕部状態遷移θa
*の情報を出力する。本目標動作の場合には、時間で変化しない腕部21の関節Jの状態に関する情報を腕部状態遷移θa
*の情報として出力できる。このとき、実際はセンサ情報のフィードバックに基づいて、腕部21の関節Jeの角度が変化するように制御を行っているが、関節Jeの角度の変化による慣性力の変化は小さく、移動部22のダイナミクスに対する影響は小さいと仮定している。
【0081】
そして、移動制御部13は、式1~7の最適制御問題に基づくモデル予測制御を用いて、腕部状態遷移θa
*の情報を考慮しつつ、基部22bの目標姿勢を追従するような移動制御指令C2を算出し、制御周期Tbで移動部22へ出力する。これにより、移動部22は、腕部状態遷移θa
*の情報を踏まえて適切に制御されることになる。
【0082】
図4~
図6は、
図3の目標動作を実行するようにロボット2を制御したときの制御結果を説明する図である。
図4は、ロボット2と周辺環境の概略図、
図5は、腕部21のエンドエフェクタ21aの位置x
ayの時間変化、
図6は、脚部22aの関節を駆動するモータへ出力した電力量の時間変化を示す。
【0083】
<<本発明を適用しない場合(許容範囲を考慮しない場合)>>
まず、制御装置1の移動制御部13が、エンドエフェクタ21aの位置x
ayに対する許容範囲を考慮しない場合のロボット制御結果について説明する。この場合、ロボット2の基部22bの姿勢が目標姿勢を追従することで、
図4左図のように、基部22bが初期姿勢を維持し続ける。これにより、
図5における許容範囲を考慮しない場合の結果5aのように、エンドエフェクタ21aの位置x
ayを許容範囲5cに収めることができる。
【0084】
ただし、
図4左図の状態では、ロボット2の腕部21の重心は、移動部22の重心よりy軸の正方向に位置しており、その状態の腕部21に起因して移動部22をx軸周りに回転させるモーメントが発生している。そのため、このモーメントに抗いつつ基部22bの姿勢を目標姿勢のまま維持すると、
図6における許容範囲を考慮しない場合の結果6aのように、脚部22aの関節を駆動するモータでの消費電力量が大きくなってしまう。このように、エンドエフェクタ位置の許容範囲を考慮せずにロボット2を制御すると、ロボット2で過剰な電力を消費したり、脚部22aの関節劣化が早まったりする恐れがある。
【0085】
<<本発明を適用した場合(許容範囲を考慮する場合)>>
次に、制御装置1の移動制御部13が、エンドエフェクタ21aの位置x
ayに対する許容範囲を考慮する場合の制御結果について説明する。この場合、
図4右図のように、ロボット2の基部22bの姿勢がθ
bx方向に回転しているが、
図5における許容範囲を考慮する場合の結果5bのように、エンドエフェクタ21aの位置x
ayを許容範囲5cに収めることができている。
【0086】
このとき、
図4右図のように、ロボット2の基部22bの姿勢をθ
bx方向に回転させることで、y軸上での腕部21の重心位置を移動部22の重心位置と略一致させることができる。これにより、腕部21に起因するx軸周りのモーメントを抑制できるため、
図6における許容範囲を考慮する場合の結果6bのように、脚部22aの関節を駆動するモータでの消費電力量を小さくすることができる。その結果、本目標動作を達成するための電力消費量や脚部22aの関節への負荷を低減することができる。
【0087】
以上の
図3から
図6では、スプレー塗装を目標動作として挙げたが、目標動作をローラーや刷毛を使った塗装、研磨、溶接、払拭などに変更しても、同様な手順で許容範囲を設定することができる。このとき、研磨や払拭の場合には、腕部21のエンドエフェクタ21aが壁面Wへ接する必要があるため、壁面Wの法線方向(y方向)の位置x
ayに対する許容範囲を小さく設定するなどの調整が必要である。また、壁面Wとの接触により、腕部21のエンドエフェクタ21aへ外力が生じる場合には、腕部21に備えられた力覚センサなどにより外力を取得して、式9の動力学モデルに現れるf
aへ設定することで、腕部21に生じる外力を考慮した移動部制御が可能である。
【0088】
以上で説明したように、本実施例のロボット制御システムによれば、状態変数の許容範囲を予め設定することで、目標動作を達成するための腕部状態と移動部状態の組合せが多い場合でも、適切な移動部制御則を容易に取得することができる。
また、ロボット2と操作対象物Obとの間の距離が大きく、腕制御部12が目標動作を実行できない場合が考えられる。その場合、動作計画部11に対してカメラ23の画像情報I1をフィードバックし、ロボット2と操作対象物Obとの間の距離がある基準値より小さくなったタイミングで、腕制御部12に対する目標動作の指令を開始するような方法を採用することができる。このとき、腕制御部12に対する目標動作の指令を開始するまでは、操作対象物Obへ向かってある速度で移動するような目標位置又は目標姿勢を移動制御部13に対して指令する事ができる。
本実施例では、目標動作として静止物体の把持を例に挙げたが、目標動作として動的物体の把持や把持物の設置、スイッチの押下などに変更しても、同様な手順で許容範囲を設定することができる。また、操作対象物Obの把持や周辺環境との接触により、腕部21のエンドエフェクタ21aへ外力が生じる場合には、腕部21に備えられた力覚センサにより外力を測定するなどして、式9の動力学モデルに現れるfaへ設定することで、腕部21に生じる外力を考慮した移動部制御が可能である。あるいは、操作対象物Obや周辺環境の状態遷移を式9の動力学モデルへ記述することにより、それらの挙動をより正確に考慮することができる。
また、カメラ23を備えた本実施例のシステムにおいては、式8~12を利用する場合に、カメラ23の情報を移動制御部13へフィードバックし、周辺環境にある障害物や地形を認識することで、基部22bの目標状態や脚部22aの接触点の目標位置を決定することができる。