IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2024-164946ロボット制御システム、ロボット制御方法、および、ロボット制御装置
<>
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図1
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図2A
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図2B
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図2C
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図3
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図4
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図5
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図6
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図7
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図8
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図9
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図10
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図11
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図12
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図13
  • 特開-ロボット制御システム、ロボット制御方法、および、ロボット制御装置 図14
< >
(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で生成された一連動作は、任意の制御周期Tで腕制御指令Cとして腕部21に入力され、腕制御指令Cに基づき腕部21が動作する。腕制御指令Cは、腕部21の各関節を回転又は並進させる指令であり、例えば、各関節の角度、角速度、角加速度(トルク)の時系列変化を指定するものである。腕制御指令Cと腕部21の実際の状態との差異や、周辺環境の状態に基づいて、腕制御部12が動作を生成する場合には、腕制御部12はロボット2が備える各種センサの情報を利用することができる。
【0022】
<移動部22の制御方法>
次に、ロボット2の移動部22の制御方法について説明する。腕部21と移動部22を備えたロボット2を対象とする場合、制御装置1の移動制御部13は、腕部21の目標動作を達成するために、動作計画部11から指令される目標状態(例えば、基部22bの位置又は姿勢)を追従するように移動部22を制御する。このとき、移動制御部13は、腕部21が動作することによる慣性力の影響を考慮して、移動部22を制御する必要がある。
【0023】
目標状態を追従するように移動部22を制御するためには、移動部22の実際の状態と目標状態との差分が小さくなる制御入力を求めればよい。制御入力ができるだけ小さくなるように問題を設定すると、所定の評価期間[t,t]ついて次のような最適制御問題が得られる。
【0024】
【数1】
【0025】
【数2】
【0026】
【数3】
【0027】
ここで、φとLは評価関数、xは状態ベクトル、uは入力ベクトル、xrefは目標状態ベクトル、P,Q,Rは重み行列である。xとxrefに移動部22の状態に関する変数を含めることで目標状態を追従する制御を実現できる。また、評価関数Lに定義される項は式2の限りではない。例えば、電力消費量を評価する項や、ロボット2が自身や周辺環境との衝突を避けるための安全性を評価する項などを追加することができる。なお、目標状態ベクトルのxrefの時系列変化の軌跡によって状態ベクトルxの目標軌道を定義することができる。
【0028】
式1~3の最適制御問題を解くためには、状態ベクトルxの時間発展を推定する必要がある。そこで、式1~3の最適制御問題に対して次の制約条件を定義できる。
【0029】
【数4】
【0030】
【数5】
【0031】
【数6】
【0032】
【数7】
【0033】
ここで、式4はロボット2の動力学モデル、式5は初期条件、式6は等式制約、式7は不等式制約である。
【0034】
式1~7の最適制御問題を、ロボット2の制御開始前にオフラインで解けば、最適化された一連の制御入力を事前に求めることができる。一方で、非整備環境でロボット2を制御する場合には、動力学モデルの誤差や外乱の影響により、オフラインで事前に想定した通りに状態が遷移するとは限らない。
【0035】
そこで、本実施例では、移動制御部13が各制御周期Tにおいて、その時刻で観測されたロボット状態を式5の初期条件とし、現時刻tから有限時間先の時刻tまでについて式1~7の最適制御問題を解き、得られた制御入力のうちtにおける結果のみを制御指令Cとして使用する制御手法を用いることとした。この手法は一般にモデル予測制御と呼ばれる。
【0036】
以下の実施例では、一般的なモデル予測制御を用いた場合を想定して説明するが、式1~7の最適制御問題に係る別の制御手法に置き換えることも可能である。例えば、動力学モデルの誤差や外乱の影響が限りなく小さい場合や、ロボット2をシミュレータ上で制御するような場合には、式1~7の最適制御問題をオフラインで解いた結果より、一連の制御入力を決定できる。あるいは、ロボット2の重心に生じる力及びトルクを算出した後に、各関節又は回転翼22cに出力する制御入力を算出する階層的な算出方法や、式1~7の最適制御問題におけるパラメータ(重み行列、評価期間、目標状態など)の一部を機械学習により取得する方法なども採用できる。また、モデル予測制御には、微分動的計画法、Multiple shooting法などを用いた勾配ベースの手法や、モンテカルロ法や経路積分などを用いたサンプリングベースの手法があるが、いずれの手法を用いても良い。また、式1~7の最適制御問題における時刻tの値は任意であり、大きな値を設定することで、より将来の状態を考慮した制御指令Cを算出する事ができる。一方で、移動制御部13の制御周期Tについてt=t+Tを設定し、ロボット2に対する次の制御入力とそれによる状態変化のみを考慮して制御指令Cを算出することもできる。
【0037】
以下では、具体例として、式1~7の最適制御問題を、四脚型ロボット2Aへ適用した場合について説明する。四脚型ロボット2Aを制御対象とする場合、式4における動力学モデルは次のように表すことができる。
【0038】
【数8】
【0039】
【数9】
【0040】
ここで、pcom、lcomは、四脚型ロボット2Aの重心の並進運動量、及び、角運動量であり、基部22bの位置x、回転θ、並進速度v、回転速度ω、脚部22a及び腕部21の関節角θ及びθ、関節角速度ω及びωに依存する関数である。また、n及びnは脚部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】
【数10】
【0044】
【数11】
【0045】
【数12】
【0046】
ここで、vl,iは脚部22aの接触点iの速度、fl,i 、fl,i 、fl,i は接触点iにおいて接触面に対して接線方向x、y、法線方向zに生じる力である。式10、11は接触点iが接触面を滑らないための条件を定義している。また、式6の等式制約や式7の不等式制約は四脚型ロボット2Aの性能や目標動作に応じて追加、削除することができる。例えば、脚部22aの関節角や関節角速度の上下限を不等式制約として追加することができる。
【0047】
以上に示した、四脚型ロボット2Aを制御対象とする場合における、式8、9の動力学モデルと式10~12の等式制約及び不等式制約を用い、式1~7の最適制御問題を解くことで、四脚型ロボット2Aの基部22bの状態x、v、θ、ωのいずれかが目標状態xb,ref、vb,ref、θb,ref、ωb,refを追従するような、脚部22aの関節角θ(又は関節角速度ω、関節角加速度α)を算出し、移動制御指令Cとして移動部22へ出力することができる。
【0048】
ここで、式1~7の最適制御問題に基づくモデル予測制御を実環境で行う場合には、動力学モデルや外乱の影響により、四脚型ロボット2Aや周辺環境の状態は予測値と実測値とで差異が生じる。そこで、四脚型ロボット2Aに備えられたセンサ情報(例えば、脚部22aの関節に備えられたエンコーダから取得される関節状態や、基部22bに備えられた慣性計測ユニットから取得される姿勢情報など)を移動制御部13へフィードバックし、制御指令Cの補正や式5の初期条件として利用することができる。
【0049】
さらに、式8、9の動力学モデルに現れる腕部21の関節角θ(又は関節角速度ω、関節角加速度α)として、腕制御部12が生成した腕部状態遷移θ (又は関節角速度遷移ω 、関節角加速度遷移α )を設定するか、あるいは式1~7の最適制御問題における式6の等式制約として式13、式14、式15を追加することで、腕部21の慣性力による影響を考慮した移動制御指令Cの生成が可能となる。
【0050】
【数13】
【0051】
【数14】
【0052】
【数15】
【0053】
ここで、式13、式14、式15のうちいずれかが省略される場合も考えられる。また腕部21のエンドエフェクタ21aに負荷が掛かる場合には、エンドエフェクタ21aに生じる力faに関する等式制約を追加することもできる。このとき、腕制御部12が腕制御指令Cを算出する過程で、例えば、腕制御部12がモデル予測制御を用いる場合や、環境状態の予測に基づく学習型制御を用いる場合のように、評価期間[t,t]における腕部状態遷移θ を取得できる場合は、取得された腕部状態遷移θ をそのまま移動制御部13へ出力することができる。一方で、腕制御部12が腕制御指令Cを算出する過程で、評価期間[t,t]における腕部状態遷移θ を取得しない場合には、例えば、過去の制御指令Cを参照して将来の制御指令Cを外挿することで、腕部状態遷移θ を推定することができる。
【0054】
式1~7の最適制御問題において式2に現れる状態変数xの重みQを大きく設定すると、状態変数xの目標状態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の実際の状態と目標状態の差分に基づいて腕制御指令Cを補正し、目標動作を達成すれば良い。
【0058】
したがって、腕部21の目標動作の特性を考慮することにより、腕部21の目標動作を達成するための許容範囲を状態変数に対して予め設定することができる。これにより、許容範囲を満たす範囲で移動部22の状態を選択できるようになり、腕部21の目標動作を達成するための解を算出できる確率が大きくなる。更には、移動部22を制御する際の消費電力量や駆動部への負荷低減を期待することができる。
【0059】
腕部21の目標動作を達成するための、状態変数xの許容範囲設定方法は、例えば次の2つである。
【0060】
第1の許容範囲設定方法は、式1~7の最適制御問題における式7の不等式制約として、次式を追加する方法である。
【0061】
【数16】
【0062】
ここで、xは許容範囲を設定する状態変数であり、xmin及びxmaxは腕部21の動作目標を達成するために要求されるxの下限値と上限値である。このとき、状態変数xは移動部22の状態以外の変数でも良い。例えば、状態変数xとして腕部21の接触点の位置又は姿勢を設定することもできる。また、複数の状態変数に対して式13の許容範囲を設定しても良い。なお、この場合の下限値xminと上限値xmaxは、許容範囲入力部31を介してユーザーが入力したものであっても良いし、機械学習などを利用して動作計画部11が自動生成したものであっても良い。
【0063】
第2の許容範囲設定方法は、式1~7の最適制御問題において、式2の評価関数における重み行列を調整する方法である。例えば、状態変数xに関する重みQを小さくすることで、目標状態xi,refへの追従性を小さくできるので、式1~7の最適制御問題を解いたときに式13が満たされるようにQを設定することで、腕部21の目標動作を達成できる移動制御指令Cを算出することができる。なお、この場合の重みQは許容範囲入力部31を介してユーザーが入力したものであっても良いし、機械学習などを利用して動作計画部11が自動生成したものであっても良い。
【0064】
また、これら2つの許容範囲設定方法を組合わせることも可能である。例えば、式13の許容範囲をxに対して明示的に設定した後に、設定された許容範囲内でのxの変化のし易さを、Qを用いて調整することが可能である。
【0065】
本実施例では四脚型ロボット2Aを対象として具体例を説明したが、式4の動力学モデルや式6、7の等式制約及び不等式制約をロボット2の形態に応じて置き換えることで、ロボット2が人型ロボット2Bや無人航空機2Cである場合へも拡張することができる。
【0066】
例えば、人型ロボット2Bを制御する場合には、脚部22a及び腕部21の接点数をn及びnへ設定し、基部22bと頭部を纏めて胴部として扱えば、式8、式9の動力学モデルや、式10、式11、式12の制約条件をそのまま利用することができる。
【0067】
また、無人航空機2Cを制御する場合には、式4の動力学モデルを、慣性座標系における並進運動方程(式17)と、無人航空機2Cの重心を原点とした機体座標系における回転運動方程(式18)で表せば良い。
【0068】
【数17】
【0069】
【数18】
【0070】
ここで、pcom、lcomは、無人航空機2Cの重心の並進運動量、及び、角運動量であり、基部22bの位置x、回転角θ、並進速度v、回転速度ω、腕部21の関節角θ、関節角速度ωに依存する関数である。また、nは基部22bの接触点の数、ra,iは重心から腕部21の接触点iまでの長さ、fa,iは腕部21の接触点iに生じる接触力、τa,iは腕部21の接触点iに生じる接触トルク、mgは重力により重心に生じる力である。また、Rは機体座標系から慣性座標系に変換するための回転行列、F及びτは回転翼22cの回転により無人航空機2Cへ発生する推力及びトルクである。推力F及びトルクτは回転翼22cの回転数ωの二乗に比例する。
【0071】
なお、無人航空機2Cの動力学モデルの記述方法は、式17、式18に限定されず、例えば、式17の並進運動方程式へ空気抵抗に関する項を追加したり、式18の回転運動方程式へ空気の粘性抵抗に関する項を追加したりできる。また、式6、式7における制約条件は必ずしも与える必要はないが、例えば、回転翼22cの回転数ωの上限を式7の不等式制約として与えることができる。
【0072】
以上により、式17、式18の動力学モデルを用いて式1~7の最適制御問題を解くことで、基部22bの状態x、v、θ、ωのいずれかが目標状態xb,ref、vb,ref、θb,ref、ωb,refを追従するような、無人航空機2Cの回転翼22cの回転数ω(又は各回転翼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のもとで、移動部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は、本目標動作を達成するための腕制御指令Cを制御周期Tで腕部21へ出力する。それと同時に、腕制御部12は、移動制御部13に対して、腕部状態遷移θ の情報を出力する。本目標動作の場合には、時間で変化しない腕部21の関節Jの状態に関する情報を腕部状態遷移θ の情報として出力できる。このとき、実際はセンサ情報のフィードバックに基づいて、腕部21の関節Jeの角度が変化するように制御を行っているが、関節Jeの角度の変化による慣性力の変化は小さく、移動部22のダイナミクスに対する影響は小さいと仮定している。
【0081】
そして、移動制御部13は、式1~7の最適制御問題に基づくモデル予測制御を用いて、腕部状態遷移θ の情報を考慮しつつ、基部22bの目標姿勢を追従するような移動制御指令Cを算出し、制御周期Tで移動部22へ出力する。これにより、移動部22は、腕部状態遷移θ の情報を踏まえて適切に制御されることになる。
【0082】
図4図6は、図3の目標動作を実行するようにロボット2を制御したときの制御結果を説明する図である。図4は、ロボット2と周辺環境の概略図、図5は、腕部21のエンドエフェクタ21aの位置xayの時間変化、図6は、脚部22aの関節を駆動するモータへ出力した電力量の時間変化を示す。
【0083】
<<本発明を適用しない場合(許容範囲を考慮しない場合)>>
まず、制御装置1の移動制御部13が、エンドエフェクタ21aの位置xayに対する許容範囲を考慮しない場合のロボット制御結果について説明する。この場合、ロボット2の基部22bの姿勢が目標姿勢を追従することで、図4左図のように、基部22bが初期姿勢を維持し続ける。これにより、図5における許容範囲を考慮しない場合の結果5aのように、エンドエフェクタ21aの位置xayを許容範囲5cに収めることができる。
【0084】
ただし、図4左図の状態では、ロボット2の腕部21の重心は、移動部22の重心よりy軸の正方向に位置しており、その状態の腕部21に起因して移動部22をx軸周りに回転させるモーメントが発生している。そのため、このモーメントに抗いつつ基部22bの姿勢を目標姿勢のまま維持すると、図6における許容範囲を考慮しない場合の結果6aのように、脚部22aの関節を駆動するモータでの消費電力量が大きくなってしまう。このように、エンドエフェクタ位置の許容範囲を考慮せずにロボット2を制御すると、ロボット2で過剰な電力を消費したり、脚部22aの関節劣化が早まったりする恐れがある。
【0085】
<<本発明を適用した場合(許容範囲を考慮する場合)>>
次に、制御装置1の移動制御部13が、エンドエフェクタ21aの位置xayに対する許容範囲を考慮する場合の制御結果について説明する。この場合、図4右図のように、ロボット2の基部22bの姿勢がθbx方向に回転しているが、図5における許容範囲を考慮する場合の結果5bのように、エンドエフェクタ21aの位置xayを許容範囲5cに収めることができている。
【0086】
このとき、図4右図のように、ロボット2の基部22bの姿勢をθbx方向に回転させることで、y軸上での腕部21の重心位置を移動部22の重心位置と略一致させることができる。これにより、腕部21に起因するx軸周りのモーメントを抑制できるため、図6における許容範囲を考慮する場合の結果6bのように、脚部22aの関節を駆動するモータでの消費電力量を小さくすることができる。その結果、本目標動作を達成するための電力消費量や脚部22aの関節への負荷を低減することができる。
【0087】
以上の図3から図6では、スプレー塗装を目標動作として挙げたが、目標動作をローラーや刷毛を使った塗装、研磨、溶接、払拭などに変更しても、同様な手順で許容範囲を設定することができる。このとき、研磨や払拭の場合には、腕部21のエンドエフェクタ21aが壁面Wへ接する必要があるため、壁面Wの法線方向(y方向)の位置xayに対する許容範囲を小さく設定するなどの調整が必要である。また、壁面Wとの接触により、腕部21のエンドエフェクタ21aへ外力が生じる場合には、腕部21に備えられた力覚センサなどにより外力を取得して、式9の動力学モデルに現れるfへ設定することで、腕部21に生じる外力を考慮した移動部制御が可能である。
【0088】
以上で説明したように、本実施例のロボット制御システムによれば、状態変数の許容範囲を予め設定することで、目標動作を達成するための腕部状態と移動部状態の組合せが多い場合でも、適切な移動部制御則を容易に取得することができる。
【実施例0089】
次に、図7から図11を用いて、本発明の実施例2に係るロボット制御システム100を説明する。なお、実施例1との共通点は重複説明を省略する。
【0090】
図7は、ロボット2(四脚型ロボット2A)が位置xからx軸に沿って移動し、操作対象物Obの近傍を通過する際に、位置xで腕部21が操作対象物Obを把持する目標動作を説明する図である。本実施例では、本目標動作を具体例に、腕部21の状態に基づいて許容範囲が変化する場合について、本目標動作を達成するための許容範囲の定め方や、許容範囲を式13の不等式として式1~7の最適制御問題への設定する方法について説明する。
【0091】
本目標動作を達成するために、腕制御部12は、まず、ロボット2に備えられたカメラ23が撮像した周辺環境の画像情報Iより、操作対象物Obの状態を認識する。続いて、操作対象物Obに関する時系列情報を基に、操作対象物Obの将来の軌道を予測し、操作対象物Obを把持するための腕部21の目標軌道を生成する。これは、ベルトコンベアなどの上を移動する操作対象物Obを把持するための腕部21の制御方法と等価である。そのため、操作対象物Obが移動する代わりに、腕部21と接続された移動部22を移動させる事で、腕部21に対する既存の制御手法を腕制御部12における制御方法としてそのまま利用することができる。
【0092】
ここで、腕制御部12は、操作対象物Obを捉えたカメラ23の時系列の画像情報Iから、移動部22が現在位置からある速度で移動した場合に、腕部21が操作対象物Obを把持できるかを評価できるものとする。その場合、腕部21が操作対象物Obを把持するための、移動部22の速度の上限vbx,maxを決定することができる。このとき、腕部21のエンドエフェクタ21aと操作対象物Obとの間の距離ra-oが近づくほど、操作対象物Obの予測軌道に応じた、腕部21のエンドエフェクタ21aの先回りができなくなるため、vbx,maxは小さくなる。このように、vbx,maxはra-oに依存して変化するため、本目標動作を達成するために設定する許容範囲もra-oに基づき変化することになる。
【0093】
以上により、基部22bの姿勢(xbx,xby,xbz,θbx,θby,θbz)に対する時刻t+Δtでの目標姿勢は、(xbx,ref,xby,ref,xbz,ref,θbx,ref,θby,ref,θbz,ref)=(xbx,t+vbx,max(t)Δt、xby,0,xbz,0,θbx,0,θby,0,θbz,0)のように設定できる。ここで、xbx,tは時刻tにおける基部22bのx軸上の位置、vbx,max(t)は時刻tにおける移動部22の速度の上限である。加えて、腕部21が操作対象物Obを把持するための許容範囲は、基部22bの並進速度vbxに対して、式13の不等式制約としてvbx,min≦vbx≦vbx,maxのように設定できる。ここで、vbx,minはvbx,maxより小さな任意の速度を設定すれば良い。ここでは、最小限の移動速度の保証として、vbx,min=vbx,max/2を設定する。
【0094】
図8は、本目標動作を達成するためのロボット制御システム100の構成を説明する図である。図8のロボット制御システム100の構成において、本目標動作を達成する手順は次の通りである。
【0095】
まず、動作計画部11が腕制御部12に対して本目標動作の実行を指令する。次に、腕制御部12が、カメラ23で撮像した画像情報Iに基づいて腕制御指令Cを生成し、制御周期Tで腕部21へ出力する。それと同時に、腕制御部12は腕部状態遷移θ と、それに基づく許容範囲vbx,maxの遷移を生成し、腕部状態遷移θ を移動制御部13、許容範囲遷移を動作計画部11へ出力する。この腕部状態遷移θ は、例えば、操作対象物Obが一定速度で移動すると仮定して、腕部21が将来取るべき目標軌道を予測することにより生成できる。
【0096】
続いて、動作計画部11は、許容状態遷移の情報に基づいて、基部22bの姿勢に対する目標姿勢と、vbxに対する許容範囲を決定し、それらを移動制御部13へ出力する。そして、移動制御部13は式1~7の最適制御問題に基づくモデル予測制御を用いて、腕部状態遷移θ の情報を考慮し、基部22bの目標姿勢を追従するような移動制御指令Cを算出し、制御周期Tで移動部22へ出力する。このとき、移動制御指令Cが変化すると、カメラ23が捉える操作対象物Obの位置も変化するため、腕制御部12が生成する腕制御指令Cが修正される。したがって、移動制御部13が式1~7の最適制御問題に基づいて移動制御指令Cを算出する過程で、腕部状態遷移θ が変化してしまう。
【0097】
正確な腕部状態遷移θ を考慮するために、式1~7の最適制御問題で最適化計算を行う過程で、腕部状態遷移θ を逐次修正することもできる。例えば、腕部状態を腕部21のエンドエフェクタ21aと操作対象物Obとの間の距離ra-oに関する関数として近似することで、低い計算コストで腕部状態遷移θ を修正できる。一方で、モデル予測制御を用いる場合、更新された腕部状態遷移θ に基づく移動制御指令Cの算出が制御周期Tで実行されるため、腕部状態遷移θ がある程度正確でなくとも、最適解から大きくは外れない移動制御指令Cを算出することができる。
【0098】
ここで、腕制御部12の制御周期Tと移動制御部13の制御周期Tが異なる場合、腕部状態遷移θ と許容範囲遷移の更新周期はTa、のいずれであっても良い。動作計画部11が移動制御部13へ目標姿勢と許容範囲を出力する周期については、T又はTと同じか、あるいはそれ以外の周期で合って良い。
【0099】
また、ロボット2と操作対象物Obとの間の距離が大きく、腕制御部12が目標動作を実行できない場合が考えられる。その場合、動作計画部11に対してカメラ23の画像情報Iをフィードバックし、ロボット2と操作対象物Obとの間の距離がある基準値より小さくなったタイミングで、腕制御部12に対する目標動作の指令を開始するような方法を採用することができる。このとき、腕制御部12に対する目標動作の指令を開始するまでは、操作対象物Obへ向かってある速度で移動するような目標位置又は目標姿勢を移動制御部13に対して指令する事ができる。
【0100】
図9図10図11は本目標動作に対してロボット2を制御したときの制御結果を説明する図である。図9はロボット2と周辺環境の概略図、図10は基部22bの並進速度vbxの遷移、図11は脚部22aの関節を駆動するモータへ出力された電力量の遷移を示す。
【0101】
<<本発明を適用しない場合(許容範囲を考慮しない場合)>>
まず、制御装置1の移動制御部13が、基部22bの並進速度vbxに対する許容範囲を考慮しない場合の制御結果10aについて説明する。図9左図のようにロボット2の基部22bの姿勢が目標姿勢を追従することで、位置xで腕部21が操作対象物を把持できる。一方で、ロボット2の腕部21が操作対象物Obへ近づくと、ロボット2の重心位置がy軸に対して負の方向へ移動する。これにより、基部22bの姿勢を目標姿勢に追従させるために、図11における許容範囲を考慮しない場合の結果11aのように、脚部22aの関節を駆動するモータへ出力される電力量が大きくなる。したがって、過剰に電力が消費されたり、脚部22aの関節の劣化が早まったりする恐れがある。
【0102】
<<本発明を適用した場合(許容範囲を考慮する場合)>>
次に、制御装置1の移動制御部13が、基部22bの並進速度vbxに対する許容範囲を考慮する場合の制御結果10bについて説明する。このとき、基部22bの移動速度vbxに対する許容範囲に加え、基部22bのz方向の位置xbzに対する許容範囲としてxbz,min≦xbz≦xbz,maxを与えることとする。図9左図の許容範囲を考慮しない場合と比較して、図9右図の許容範囲を考慮する場合の方が、基部22bの姿勢がz軸に対して負の方向へ移動する。これにより、腕部21の重心位置がy軸に対して正の方向へ移動するため、図11における許容範囲を考慮する場合の結果11bのように、脚部22aの関節を駆動するモータへ出力される電力量が小さくなる。その結果、電力消費量や脚部22aの関節への負荷を低減することができる。このとき、基部22bのz方向の位置xbzを低く維持した状態で歩行するために、図10における許容範囲を考慮する場合の結果10bのように、移動速度vbxが小さくなっているが、許容範囲10cへ収めることができている。
【0103】
本実施例では、目標動作として静止物体の把持を例に挙げたが、目標動作として動的物体の把持や把持物の設置、スイッチの押下などに変更しても、同様な手順で許容範囲を設定することができる。また、操作対象物Obの把持や周辺環境との接触により、腕部21のエンドエフェクタ21aへ外力が生じる場合には、腕部21に備えられた力覚センサにより外力を測定するなどして、式9の動力学モデルに現れるfへ設定することで、腕部21に生じる外力を考慮した移動部制御が可能である。あるいは、操作対象物Obや周辺環境の状態遷移を式9の動力学モデルへ記述することにより、それらの挙動をより正確に考慮することができる。
【0104】
また、カメラ23を備えた本実施例のシステムにおいては、式8~12を利用する場合に、カメラ23の情報を移動制御部13へフィードバックし、周辺環境にある障害物や地形を認識することで、基部22bの目標状態や脚部22aの接触点の目標位置を決定することができる。
【実施例0105】
次に、図12図13を用いて、本発明の実施例3に係るロボット制御システム100を説明する。本実施例では、腕部21の目標動作を達成するための許容範囲の決定に対する支援機能を有したシステムについて説明する。なお、上記の実施例との共通点は重複説明を省略する。
【0106】
図12は、本実施例のロボット制御システム100の構成を説明する図である。このロボット制御システム100は、図1のロボット制御システムの構成に、センサ24、演算部32、表示部33が追加された構成である。
【0107】
許容範囲入力部31では、キーボードやタッチパネルやジョイスティックなどを経由してユーザーにより許容範囲に関する情報が入力され、その許容範囲に関する情報を動作計画部11へ出力する。具体的には、ある状態変数に対する式13の不等式制約や式1~3の最適制御問題における重み行列として入力される。このとき、式13の不等式における上下限として入力する値は、実施例1の目標動作に対する許容範囲のように定数であっても良いし、ある変数に依存する関数であっても良い。
【0108】
演算部32は、入力された許容範囲に関する情報の基でロボット2が制御された結果をセンサ24の情報により取得し、その情報に基づきユーザーへ提示する情報を演算する。なお、この演算部32は、制御装置1を構成するコンピュータとは別のコンピュータにより実現される機能部、または、制御装置1と同じコンピュータにより実現される機能部である。
【0109】
表示部33は、演算部32で演算された情報を表示する液晶ディスプレイ等の表示装置である。図13は、表示部33へ表示される情報の一例である。ここで、図13は、図3に示す目標動作をロボット2(四脚型ロボット2A)が実施する場合を想定している。ユーザーは、設定された許容範囲33bの基でロボット2が動作したときのシミュレーション映像33aや、許容範囲を設定した状態変数の経時変化33fや、電力消費の経時変化33gを確認することができる。
【0110】
許容範囲を設定した状態変数が許容範囲33bに収まらなかったり、ロボット2が目標動作を実行する途中で転倒したり、目標動作を達成する前にロボット2の充電がなくなったりする場合には、目標動作の成否33dへNGと表示され、ユーザーはそれらの情報を基に許容範囲33bを補正することができる。また、表示部33へ表示される胴部の移動速度33cや目標動作の予測完了時間33eの情報を基に、動作計画部11から移動部制御部13へ出力される基部22bの移動速度33cに関する許容範囲又は目標状態を修正する事も可能である。このとき、表示部33の構成は図13に示す限りではなく、腕部21や移動部22への制御指令値などを追加で表示したり、図13に示す情報のいずれかの表示を省略したり、表示する情報を選択可能なインターフェースが追加されたりする場合も想定できる。また、演算部32がセンサ24の情報に基づいて適当な許容範囲を演算し、表示部33へ提示することができる。あるいは、演算された許容範囲を直接的に動作計画部11へ出力することもできる。
【0111】
図12のロボット制御システム100の構成は、ロボット2が実環境で制御される場合と、仮想環境で制御される場合のいずれでも適応できる。ロボット2が実環境で制御される場合には、実機を用いた運用に関して、より現実的な許容範囲の検証を行うことができる。一方で、実際に運用する環境条件が不確実である場合には、不確実な環境条件を網羅的に評価するために多くの手間を要する。また、目標動作が失敗した場合に、ロボット2が周辺環境と干渉し損傷を招く恐れがある。それに対して、ロボット2が仮想環境で制御される場合には、実機を用いずに、多様な環境条件に対する堅牢性を評価したうえで、許容範囲に関する情報を決定することができる。
【実施例0112】
次に、図14を用いて、本発明の実施例4に係るロボット制御システム100を説明する。本実施例では、ユーザーにより腕部21が制御される場合について説明する。なお、上記の実施例との共通点は重複説明を省略する。
【0113】
図14は、本実施例のロボット制御システム100の構成を説明する図である。腕動作指令入力部34では、腕部動作指令(腕部21のエンドエフェクタ21aの位置や姿勢、腕部21の各関節の角度など)を入力装置(ジョイスティック、スレーブロボット、キーボードなど)により入力する。腕制御部12では、腕部動作指令を満足する腕制御指令C(関節角、関節角速度、関節トルクなど)を生成し、制御周期Tで腕部21へ出力する。それと同時に、腕部状態遷移θ を推定し、移動制御部13へ出力する。このとき、腕制御部12が腕部状態遷移θ を生成する方法は任意である。例えば、過去の腕制御指令Cの情報を用いて、線形外挿や機械学習により腕部状態遷移θ を予測する方法などを採用できる。
【0114】
移動指令入力部35では、移動指令(基部22bの位置、姿勢、並進速度など)と式13の不等式制約として表される許容範囲を、許容範囲入力部31により入力する。移動制御部13では、移動部動作指令と許容範囲に基づき、腕部状態遷移θ を考慮した移動制御指令Cを、式1~7の最適制御問題を用いて算出し、制御周期Tで移動部22へ出力する。
【0115】
本実施例では、腕部動作指令がユーザーによって入力されるため、目標動作を達成するための許容範囲はユーザーの操作に依存する。例えば、ロボット2の移動部22が一定速度で移動する間にユーザーが腕部21を操作する事で、腕部21に備えられたカメラ23で計器を撮像し、表示部33に表示されたカメラ23の画像から、ユーザーが計器の情報を読取るような目標動作を想定する。この場合、ロボット2の基部22bが移動中に上下方向へ大きく振動すると、カメラ23の画像からは計器の情報を正確に読取ることができなくなる。そこで、表示部33へ表示されたカメラ23の画像の品質を基にユーザーが上下振動の許容範囲を修正し、移動指令入力部35へ入力することで、カメラ23の画像品質を向上させるような目標動作の達成を支援することができる。
【0116】
本実施例では、目標動作として計器読取りを例に挙げたが、操作対象物の把持や設置、受渡し、投擲、スイッチの押下などの目標動作の基でユーザーが腕部21を操作するような場合にも、同様な手順で許容範囲を設定することができる。
【符号の説明】
【0117】
100 ロボット制御システム
1 制御装置
11 動作計画部
12 腕制御部
13 移動制御部
2 ロボット
21 腕部
21a エンドエフェクタ
22 移動部
22a 脚部
22b 基部
22c 回転翼
23 カメラ
24 センサ
31 許容範囲入力部
32 演算部
33 表示部
34 腕動作指令入力部
35 移動指令入力部
図1
図2A
図2B
図2C
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14