[第1実施形態]
本発明の第1実施形態を図1〜図19を参照して以下に説明する。本実施形態では、本発明の一例として、図1に例示する移動体1の移動を図3及び図4に例示する操縦装置51により操縦する操縦システムに関して説明する。以降の説明では、操縦対象の移動体1をスレーブ装置1、該スレーブ装置1を操縦するための操縦装置51をマスター装置51という。
また、以降の説明(後述の他の実施形態を含む)では、任意の状態量(位置、速度、力等)の名称の先頭に「実」を付加したもの、あるいは、該状態量の参照符号に「_act」という添え字を付加したものは、該状態量の実際の値、又はその観測値(検出値又は推定値)を意味する。また、任意の状態量の名称の先頭に「目標」を付加したもの、あるいは、該状態量の参照符号に「_aim」という添え字を付加したものは、該状態量の目標値を意味する。
また、任意の物体の「運動」は、該物体の位置、速度(並進速度)、加速度(並進加速度)、姿勢角、角速度、及び角加速度のうちのいずれか1つの状態量、又は2つ以上の状態量の組、又はこれらの状態量の時系列を意味する。物体の「位置」は、該物体に対して任意に設定(定義)された該物体の代表点の位置である。また、物体の「姿勢角」は、ある座標系で見た該物体の空間的な姿勢を表す角度である。該「姿勢角」は、例えばオイラー角により表現される。
さらに、「姿勢角」については、上下方向(鉛直方向もしくはほぼ鉛直な方向)の軸周りの方向(所謂、ヨー方向)での姿勢角を「向き」、横方向(水平方向もしくはほぼ水平な方向の軸周りの方向(例えばロール方向もしくはピッチ方向)での姿勢角を「傾き」又は「傾斜姿勢」又は「傾斜角」と称する場合がある。また、「姿勢角」を単に「姿勢」と称する場合がある。また、物体の「位置」及び「姿勢角」の組を単に「位置姿勢」と称する場合がある。
[スレーブ装置の構成]
図1を参照して、スレーブ装置1は、その動作環境の床面上を移動し得る移動機構2と、この移動機構2に搭載されたマニピュレータ10とを備える。なお、本明細書では、「床面」は通常の意味での床面に限らず、地面、路面等を含み得る。そして、以降の説明では、スレーブ装置1の動作環境の床を「スレーブ床」と称する。
また、以降の説明では、スレーブ装置1の「前後方向」、「左右方向」、「上下方向」は、それぞれ、図1に示す3軸直交座標系CsbのXsb軸方向、Ysb軸方向、Zsb軸方向である。また、スレーブ装置1の「ロール方向」、「ピッチ方向」、「ヨー方向」は、それぞれ、スレーブ装置1の前後方向の軸周り(Xsb軸周り)の方向、左右方向の軸周り(Ysb軸周り)の方向、上下方向の軸周り(Zsb軸周り)の方向を意味する。なお、上記3軸直交座標系Csbは、後述のスレーブ上体座標系であるが、その詳細は後述する。
また、スレーブ装置1の左右の構成要素を区別するために、左側の構成要素の参照符号と右側の構成要素の参照符号とにそれぞれ「L」、「R」を付加する。ただし、左右の区別を必要としないときは、参照符号への「L」、「R」の付加を省略する。
移動機構2は、基台3と、基台3に取付けられた複数の移動接地部4とを備え、基台3とスレーブ床との間に間隔を有する状態で、複数の移動接地部4がスレーブ床面に接地される。なお、基台3の形状は、図示例の形状に限らず、任意の形状でよい。
移動機構2は、複数の移動接地部4として、例えば4つの移動接地部4(1),4(2),4(3),4(4)を備える。そして、基台3の前部の左右の両側に2つの移動接地部4(1),4(4)が取り付けられ、基台3の後部の左右の両側に2つの移動接地部4(2),4(3))が取り付けられている。
各移動接地部4は、図1では簡略的に車輪状に記載されているが、詳しくは、スレーブ床面に接地した状態で該スレーブ床面上を全方向に移動し得るように構成されている。具体的には、各移動接地部4は、例えば特開2013−237329号公報又は米国特許9027693号明細書に記載された主輪と同じ構造のものである。このため、本明細書での各移動接地部4及びその駆動機構の構成の詳細な説明は省略する。
かかる移動接地部4を備える移動機構2には、詳細な図示は省略するが、各移動接地部4毎に、その移動用の動力源(アクチュエータ)としての2つの電動モータ5a,5b(図2に示す)を有する移動駆動機構5(図2に示す)が搭載されている。そして、各移動接地部4に対応する移動駆動機構5は、上記特開2013−237329号公報又は米国特許9027693号明細書に記載されている如く、2つの電動モータ5a,5bから該移動接地部4への動力伝達を行うことで、該移動接地部4をスレーブ床面上で全方向に移動させ得るように構成されている。
この場合、各移動接地部4は、その移動速度ベクトルのうち、スレーブ装置1の前後方向(Xsb軸方向)の速度成分が2つの電動モータ5a,5bのそれぞれの回転速度の和に比例する速度になり、左右方向(Ysb軸方向)の速度成分が2つの電動モータ5a,5bのそれぞれの回転速度の差に比例する速度になるように駆動される。
なお、全方向に移動可能な各移動接地部4は、上記特開2013−237329号公報又は米国特許9027693号明細書に記載されたものに限らず、オムニホイール(登録商標)等、他の構造のものであってもよい。また、移動機構2に備える移動接地部4の個数は、4個に限らず、例えば3個、あるいは5個以上であってもよい。また、各移動接地部4の動力源としては、電動モータ5a,5bに限らず、例えば油圧アクチュエータを使用することも可能である。
マニピュレータ10は、昇降機構30を介して基台3に取り付けられている。該昇降機構30は、基台3の後部の中央部(左右方向での中央部)から上方に向かって立設された支柱31と、該支柱31に対して上下方向に移動(昇降)し得るように組付けられたスライド部材32とを備える。
この場合、支柱31は力検出器33を介して基台3に取付けられている。該力検出器33は、スレーブ装置1の上体部(基台3上に支持されている部分)が外界から受ける実際の反力(床面から移動機構2を介して受ける床反力を除く)である実スレーブ上体反力を検出するためのものであり、以降、上体力検出器33という。該上体力検出器33は、例えば6軸力センサにより構成され、並進力及び力のモーメントをそれぞれ3次元のベクトルとして検出可能である。なお、以降の説明では、「力のモーメント」を単にモーメントと称する。また、スレーブ装置1の上体部(基台3上に支持されている部分)を、以降、スレーブ上体ということがある。
支柱31に対するスライド部材32の移動を案内するガイド機構として、例えば上下方向に延在するガイドレール31aが支柱31の前面部に取り付けられている。そして、スライド部材32は、ガイドレール31aに沿って昇降し得るように該ガイドレール31aに係合されている。なお、ガイド機構は上記と異なるものであってもよい。
また、詳細な図示は省略するが、昇降機構30は、スライド部材32を支柱31に対して昇降させるためのアクチュエータであるスライドアクチュエータ36(図2に示す)を備える。該スライドアクチュエータ36は、例えば、電動モータにより構成される。
該スライドアクチュエータ36は、スライド部材32を支柱31に対して昇降させる駆動力を、例えばボールネジ機構等の回転・直動変換機構(図示省略)を介してスライド部材32に付与することで、該スライド部材32を昇降させるように支柱31又はスライド部材32に取付けられている。なお、スライドアクチュエータ36としては、電動モータに限らず、例えば、油圧アクチュエータを使用することも可能である。また、スライドアクチュエータ36は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
マニピュレータ10は、本実施形態では、スライド部材32に取り付けられている。このマニピュレータ10は、左右一対のハンド21L,21Rを備え、これらの2つのハンド21L,21Rが複数の関節を介してスライド部材32に連結されている。
該マニピュレータ10は、例えばスライド部材32から第1関節機構12を介して延設された第1リンク13と、第1リンク13の先端部に第2関節機構14を介して取り付けられた左右一対の第2リンク15L,15Rと、各第2リンク15L,15Rの先端部に第3関節機構16L,16Rを介して各々取り付けられた第3リンク17L.17Rと、各第3リンク17L.17Rの先端部に第4関節機構18L,18Rを介して各々取り付けられた第4リンク19L.19Rと、各第4リンク19L.19Rの先端部に第5関節機構20L,20Rを介して各々取り付けられた上記ハンド21L.21Rとを備える。
各関節機構12,14,16,18,20は、公知の構造の関節機構であり、電動モータ等のアクチュエータ(図示省略)により駆動される。なお、マニピュレータ10は、上記の構造のものに限らず、他の構造(例えば3軸のスライド機構を有する構造等)のものであってもよい。また、スレーブ装置1は、マニピュレータ10を備えないもの(例えば任意の運搬物を搭載可能な構造のもの等)であってもよい。
本実施形態のスレーブ装置1には、さらに、移動機構2に外部の物体が当たらないようにするためのカバー26が装着されている。このカバー26は、例えば図1に二点鎖線で示すように、マニピュレータ10の下側で、移動機構2の全体の周囲及び上面を覆うように形成され、図示しない適宜の取付け部材を介して支柱31に固定されている。
このため、本実施形態のスレーブ装置1では、スレーブ装置1の移動中に、外界に存在する物体等が、移動機構2に直接的に当たることが防止される。そして、カバー26が外界から反力(接触反力等の外力)を受けたときには、その反力がカバー26から支柱31を介して上体力検出器33に伝達されるようになっている。また、マニピュレータ10がスライド部材32に取付けられているので、マニピュレータ10が外界から受ける反力(接触反力等の外力)が該マニピュレータ10からスライド部材32及び支柱31を介して上体力検出器33に伝達されるようになっている。このため、上体力検出器33は、スレーブ床面から移動機構2を介しスレーブ上体が受ける床反力を除いて、スレーブ上体が外界から受ける実スレーブ上体反力を検出し得るように、スレーブ装置1に搭載されている。
図2を参照して、スレーブ装置1には、さらに、マスター装置51と無線通信を行うための通信装置40と、スレーブ装置1の動作制御等を行う機能を有する制御装置41とが搭載されている。さらに、スレーブ装置1には、前記上体力検出器33に加えて、各移動接地部4の実際の動作状態を検出するための検出器としてのモータ回転検出器6と、スライド部材32の実際の変位(上下方向位置)である実スレーブスライド変位を検出するためのスライド変位検出器37と、スレーブ装置1が移動動作部4を介して接地するスレーブ床の実際の床形状である実スレーブ床形状を検出するための床形状検出器7とが搭載されている。
モータ回転検出器6は、例えば、各移動接地部4に対応する移動駆動機構5の電動モータ5a,5bのそれぞれの出力軸(またはこれに連動して回転する回転部材)の回転角である実スレーブモータ回転角を、各移動接地部4の実際の動作状態を示す状態量として検出可能な検出器である。該モータ回転検出器6は、例えば、ロータリエンコーダ、レゾルバ、ポテンショメータ等により構成され得る。
スライド変位検出器37は、例えば公知の接触式あるいは非接触式の変位センサにより構成される。また、例えば、スライド部材32の変位が、スライドアクチュエータ36の出力軸の回転角に応じて変化するように、スライドアクチュエータ36からスライド部材32への動力伝達機構が構成されている場合には、該スライドアクチュエータ36の出力軸(又はこれに連動して回転する回転部材)の回転角を検出可能な検出器を、スライド変位検出器37として使用することも可能である。この場合、スライド変位検出器37として、前記モータ回転検出器6と同様の検出器を使用し得る。
なお、スレーブ装置1には、移動駆動機構5及びモータ回転検出器6がそれぞれ複数備えられているが、図2では、それぞれの1つだけを代表的に記載している。
床形状検出器7は、本実施形態では、スレーブ装置1の下方のスレーブ床の実際の傾斜角(水平面に対する平均的な傾斜角)である実スレーブ床傾斜角を実スレーブ床形状として検出可能な検出器である。該床形状検出器7は、例えば、スレーブ装置1の基台3に搭載された図示しない慣性センサ(加速度センサ及び角速度センサ)を含む。そして、床形状検出器7は、慣性センサの出力から、例えばストラップダウン方式の演算処理により、基台3の実際の傾斜角を実スレーブ床傾斜角として検出し得るように構成されている。
なお、床形状検出器7は、上記の構成のものに限られない。床形状検出器7は、例えば、カメラもしくは測距センサ(レーザ・レンジ・ファインダ等)を用いてスレーブ装置1の周囲のスレーブ床の形状を逐次認識し、その認識した床形状に基づいて、スレーブ装置1の下方のスレーブ床に関する実スレーブ床傾斜角を推定し得るように構成されていてもよい。
さらに、例えば、床形状検出器7が外部のサーバ等からスレーブ床の形状情報を取得し得る場合には、床形状検出器7は、スレーブ装置1の自己位置情報と、スレーブ床の形状情報とからスレーブ装置1の下方のスレーブ床に関する実スレーブ床傾斜角を推定するように構成されていてもよい。
制御装置41は、例えばマイクロコンピュータ、メモリ、インターフェース回路等を含む1つ以上の電子回路ユニットにより構成される。詳細な説明は後述するが、この制御装置41には、マスター装置51から通信装置40を介してスレーブ上体の動作目標(目標運動)を示す指令データが入力されると共に、スレーブ装置1に搭載された各検出器(上体力検出器33、各モータ回転検出器6、スライド変位検出器37、及び床形状検出器7)の検出データが入力される。
そして、制御装置41は、実装されたハードウェア構成及びプログラム(ソフトウェア構成)の両方又は一方により実現される機能として、スレーブ装置1の上体の移動を、各移動駆動機構5の電動モータ5a,5bと、スライドアクチュエータ36とを介して制御するスレーブ移動制御部42としての機能を有する。また、制御装置41は、スレーブ装置1の動作状態(以降、スレーブ状態という)を示すデータや、床形状検出器7で検出された実スレーブ床形状(実スレーブ床傾斜角)を示すデータを通信装置40を介してマスター装置51に出力(送信)することが可能である。なお、制御装置41は、上記の機能のほか、マニピュレータ10の作動制御を行う機能を含み得る。
以降の説明では、スレーブ装置1の構成要素の名称の先頭に、適宜、「スレーブ」を付して記載する場合がある。例えば、スレーブ装置1の基台3をスレーブ基台3と記載する場合がある。
[マスター装置の構成]
次にマスター装置51の構成を図3〜図6を参照して説明する。なお、以降の説明では、マスター装置51の動作環境の床を「マスター床」と称する。また、以降の説明では、マスター装置51の「前後方向」、「左右方向」、「上下方向」は、それぞれ、図3又は図4に示す3軸直交座標系CmbのXmb軸方向、Ymb軸方向、Zmb軸方向である。
また、マスター装置51の「ロール方向」、「ピッチ方向」、「ヨー方向」は、それぞれ、マスター装置51の前後方向の軸周り(Xmb軸周り)の方向、左右方向の軸周り(Ymb軸周り)の方向、上下方向の軸周り(Zmb軸周り)の方向を意味する。なお、上記3軸直交座標系Cmbは、後述のマスター上体座標系であるが、その詳細は後述する。
また、スレーブ装置1の場合と同様に、マスター装置51の左右の構成要素を区別するために、必要に応じて適宜、左側の構成要素の参照符号と右側の構成要素の参照符号とにそれぞれ「L」、「R」を付加する。
図3及び図4を参照して、マスター装置51は、マスター床面上を移動し得る移動機構52と、操縦者P(図4に示す)の上体に装着される上体支持部65と、操縦者P(以降、オペレータPという)の左右の足部を各々載置(接地)させ得る部分としての足部架台70L,70Rとを備える。なお、マスター装置51は、スレーブマニピュレータ10を操縦するための装置をさらに備え得る。
移動機構52は、本実施形態では、基台53と、該基台53に取り付けられた複数の(例えば4つの)移動接地部54(54(1),54(2),54(3),54(4))とを備え、基台53とマスター床面との間に間隔を有する状態で、複数の移動接地部54がマスター床面に接地される。なお、基台53の形状は、図示例の形状に限らず、任意の形状でよい。
各移動接地部54は、スレーブ移動接地部4と同じ構造のものである。そして、4つの移動接地部54(1),54(2),54(3),54(4)が、基台53の前部の左右の両側と後部の左右の両側とに各々配置されている。
また、詳細な図示は省略するが、移動機構52は、スレーブ移動機構2と同様に、各移動接地部54を駆動する機構として、図5に示す如く、電動モータ55a,55bを有する移動駆動機構55を各移動接地部54毎に備える。なお、図5では、一つの移動接地部54に対応する一つの移動駆動機構55だけを代表的に図示している。
マスター装置51では、マスター床面に対して基台53の傾きを変化させ得るように各移動接地部54が基台53に取り付けられている。具体的には、図3及び図4を参照して、基台53の左右の両側部には、各移動接地部54に対応する支軸57aが、その軸心を左右方向(Ymb軸方向)に向けて組み込まれている。
そして、各移動接地部54は、それに対応する支軸57aの軸心周りに搖動し得るように、該支軸57aにリンク57bを介して軸支されている。従って、各移動接地部54は、それに対応する支軸57aの軸心周りに搖動することで、基体53に対して相対的に上下動することが可能となっている。
さらに、詳細な図示は省略するが、マスター装置51は、マスター床面に対する基台53の傾きを変化させるための基台傾斜アクチュエータ58(図6に示す)として、各移動接地部54を、それに対応する支軸57aの軸心周りに搖動させるアクチュエータを各移動接地部54毎に備える。なお、図6では一つの移動接地部54に対応する一つの基台傾斜アクチュエータ58だけを代表的に記載している。
基台傾斜アクチュエータ58のそれぞれは、例えば電動モータにより構成され、対応する移動接地部54に係るリンク57bを、図示しない動力伝達機構を介して支軸57aの軸心周りに回転駆動することで移動接地部54を搖動させる。なお、基台傾斜アクチュエータ58としては、電動モータに限らず、油圧アクチュエータを使用することも可能である。また、基台傾斜アクチュエータ58は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
ここで、各移動接地部54がマスター床に接地した状態で、各移動接地部54に対応する基台傾斜アクチュエータ58によって、該移動接地部54を支軸57aの軸心周りに搖動させると、該移動接地部54が基台53に対して相対的に上下動することで、基台53のうちの該支軸57aの配置部分の高さ(マスター床面からの高さ)が変化する。このため、基台53の各支軸57aの配置部分毎にその高さを変化させることが可能である。これにより、マスター床面に対する基台53の傾きを変化させることが可能である。
補足すると、マスター床に対する基台53の傾きを変化させるための各移動接地部54の基台53への取り付け構造は、上記の構造に限られない。例えば、各移動接地部54が、ストローク長を可変的に制御可能なダンパーを含むサスペンション機構(所謂、アクティブサスペンション機構)を介して基台53に取り付けられていてもよい。また、各移動接地部54は、ガイドレール、ボールネジ機構等を含む昇降機構を介して基台53に取り付けられていてもよい。
また、マスター装置51の各移動接地部54は、スレーブ装置1と同じ構造のものに限らず、オムニホイール(登録商標)等、他の構造のものであってもよい。また、スレーブ装置1の場合と同様に、移動機構52に備える移動接地部4の個数は、4個に限らず、例えば3個、あるいは5個以上であってもよい。また、各移動接地部54の動力源としては、電動モータ55a,55bに限らず、例えば油圧アクチュエータを使用することも可能である。
足部架台70L,70Rのそれぞれは、基台53の左側と右側とで該基台53に対して相対的に動き得るように架台駆動機構71L,71Rを介して基台53に搭載されている。架台駆動機構71L,71Rのそれぞれは同一構造の機構である。本実施形態では、各架台駆動機構71は、例えば、3つの軸方向(例えば前記座標系Cmbの各座標軸方向)への並進運動を行い得る並進可動部72aを有して基台53に取り付けられた移動機構72と、3つの回転軸周りの方向(例えば前記座標軸Cmbの各座標軸周りの方向)に回転可能な回転可動部73aを有して上記移動機構72の並進可動部72aに取り付けられた回転機構73とを各々備える。
そして、各架台駆動機構71の回転機構73の回転可動部73aに、該架台駆動機構71と同じ側(左側又は右側)の足部架台70が取り付けられている。これにより、各足部架台70は、基台53に対して3自由度の並進運動と3自由度の回転運動とを行い得るように(ひいては、6自由度の運動自由度を有するように)、該基台53に搭載されている。
この場合、各足部架台70の上面(オペレータPの各足部を接地させる面)は、その上方から各足部を接地させ得るように上方側に露出されている。また、各足部架台70は、その上面に接地されるオペレータPの足部から受ける実際の反力(接地反力)である実足部接地反力を検出するための力検出器74を介して回転可動部73aに取り付けられている。該力検出器74(以降、足部力検出器74という)は、スレーブ上体力検出器33と同様に、例えば6軸力センサにより構成される。
詳細な図示は省略するが、各架台駆動機構71の移動機構72及び回転機構73としては公知の構造のものを採用し得る。例えば移動機構72及び回転機構73として、前記特許文献1に記載された構造のものを採用し得る。そして、各架台駆動機構71は、並進可動部72aの並進運動と回転可動部73aの回転運動とを各々を行わせるための複数(総計6個)のアクチュエータ(図6に示す架台アクチュエータ75)を備える。各架台アクチュエータ75は、例えば電動モータにより構成される。
なお、図6では、一つの架台駆動機構71(71L又は71R)と、それに備えられた複数の架台アクチュエータ75のうちの一つとを代表的に図示している。また、架台アクチュエータ75としては、電動モータに限らず、例えば油圧アクチュエータを使用することも可能である。
補足すると、各架台駆動機構71の移動機構72及び回転機構73は、特許文献1に記載されたものと異なる構造のものであってもよい。また、各架台駆動機構71は、例えば関節ロボットのアーム機構のように、複数のリンクを複数の関節を介して連接した構造の機構であってもよい。
上記のように足部架台70L,70Rを備えるマスター装置51では、足部架台70L,70Rを静止させた状態で、オペレータPが左右の足部を足部架台70L,70Rのそれぞれの上面に接地させることで、該オペレータPが足部架台70L,70R上で起立するようにしてマスター装置51に搭乗することが可能である。
さらに、マスター装置51に搭乗したオペレータPが左右の一方側の足部(支持脚側の足部)を足部架台70L(又は70R)に接地させつつ、他方側の足部(遊脚側の足部)を足部架台70R(又は70L)から浮上させて移動させたときに、遊脚側の足部架台70R(又は70L)を、支持脚側の足部架台70L(又は70R)に対して相対的に移動させつつ、遊脚側の足部の直下に位置させるように、架台駆動機構71L,71Rを作動させることで、該オペレータPがマスター装置51上にて、歩行動作を行うことが可能となる。
すなわち、オペレータPは、左右の足部のそれぞれを交互に間欠的に、足部架台70L,70Rのそれぞれに接地させることを繰り返しながら、遊脚側の足部を支持脚側の足部に対して相対的に移動させるようにして歩行動作を行うことが可能である。
この場合、オペレータPの各足部を接地させた足部架台70が、オペレータPの歩行動作における疑似的な床として機能する。以降、オペレータPの各足部を接地させた足部架台70により疑似的に形成される床を仮想床と称する。該仮想床は、オペレータPの歩行動作で一歩毎に支持脚側の足部を接地させた足部架台70の上面(接地面)を局所的な床面として有する床である。
上体支持部65は、足部架台70L,70Rの上方で基台53に対して上下動し得るように昇降機構60を介して基台53に取り付けられている。該昇降機構60は、架台駆動機構71L,71Rの後方で基台53の後部の中央部(左右方向での中央部)から上方に向かって立設された支柱61と、該支柱61に対して上下方向に移動(昇降)し得るように組付けられたスライド部材62とを備える。支柱61は基台53に固定されている。
支柱61に対するスライド部材62の移動を案内するガイド機構として、例えば上下方向に延在するガイドレール61aが支柱61の前面部に取り付けられている。そして、スライド部材62は、ガイドレール61aに沿って昇降し得るように該ガイドレール61aに係合されている。なお、ガイド機構は上記と異なるものであってもよい。
また、詳細な図示は省略するとが、昇降機構60は、スライド部材62を支柱61に対して昇降させるためのアクチュエータであるスライドアクチュエータ66(図5に示す)を備える。該スライドアクチュエータ66は、例えば、電動モータにより構成される。そして、スライドアクチュエータ66は、例えば、スレーブ装置1のスライドアクチュエータ36からスライド部材32への動力伝達機構と同様の動力伝達機構を介してスライド部材62を昇降させる。
なお、スライドアクチュエータ66としては、電動モータに限らず、例えば、油圧アクチュエータを使用することも可能である。また、スライドアクチュエータ66は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
上体支持部65は、本実施形態では、オペレータPの上体の所定の部位、例えば腰部の外周に背面側から沿わせることができるように構成されている。例えば、上体支持部65は、概略半円弧形状(もしくはU字形状)に湾曲形成された板状部材により構成される。そして、該上体支持部65は、スライド部材62に、支軸63及び力検出器64を介して取り付けられている。
より詳しくは、支軸63は、その軸心を前後方向(Xm軸方向)に向けた状態で、スライド部材62に力検出器64を介して取り付けられている。該力検出器64(以降、上体力検出器64という)は、上体支持部65がオペレータPの上体から受ける実際の反力(接触反力)である実上体支持部反力を検出するための検出器であり、スレーブ上体力検出器33と同様に、例えば6軸力センサにより構成される。
そして、上体支持部65は、その両端間の中央部が支軸63に取付けられている。この場合、上体支持部65は、スライド部材62及び上体力検出器64に対して、支軸63の軸心周りに(換言すれば、ロール方向に)、フリー回転し得るように支軸63に支持されている。
かかる上体支持部65は、オペレータPがスレーブ装置1を操縦するとき、図4に示す如く、オペレータPの左右の足部を足部架台70L,70Rに接地させた状態で、該オペレータPの上体の腰部の外周に、その背面側から沿わせるように配置される。そして、上体支持部65の両端部には、オペレータPの腰部の前面側の外周に沿わせるように配設される可撓性のベルト65x(図3及び図4に二点鎖線で示す)が連結される。
これにより、上体支持部65とベルト65xとにより、オペレータPの上体の腰部の周囲を囲むようにして、上体支持部65がオペレータPの腰部にベルト65xを介して装着される。この場合、上体支持部65は、オペレータPの腰部に対して相対的に変位しないように装着される。また、上体支持部65は、スライド部材62を適宜、上下に動かすことで、上体支持部65の高さ(上下方向の位置)を調整することが可能である。また、上体支持部65の内周面には、図示しないパッド等の弾性部材が取り付けられており、該弾性部材がオペレータPの腰部の周囲に当接される。
このように上体支持部65をオペレータPの腰部に装着した状態では、オペレータPが、前記した如く、その左右の各足部を対応する足部架台70(70L又は70R)に交互に接地させるように歩行動作を行うと、該オペレータPの上体(腰部)と共に上体支持部65が、オペレータPの足部を接地させた足部架台70に対して相対移動し得る。この場合、上体支持部65がオペレータPの腰部から受ける実上体支持部反力が上体力検出器64で検出される。また、各足部架台70が、これに接地されるオペレータの足部から受ける実足部接地反力が足部力検出器74で検出される。
図5及び図6を参照して、マスター装置51には、さらに、スレーブ装置1と無線通信を行うための通信装置90と、マスター装置51の動作制御等を行う機能を有する制御装置91とが搭載されている。さらに、マスター装置51には、前記上体力検出器64及び足部力検出器74に加えて、各移動駆動機構55による各移動接地部54の実際の動作状態を検出するための検出器としてのモータ回転検出器56と、スライド部材62の実際の変位(上下方向位置)である実マスタースライド変位を検出するためのスライド変位検出器67と、各架台駆動機構71による各足部架台70の実際の変位(並進変位及び回転角)である実架台変位を検出するための架台変位検出器76と、オペレータPの各足部の実際の位置姿勢(位置及び姿勢角)である実オペレータ足部位置姿勢を検出するためのオペレータ足部位置姿勢検出器77と、基台53の実際の傾斜状態である実マスター基台傾斜状態を検出するための基台傾斜検出器59とが搭載されている。
この場合、モータ回転検出器56は、各移動駆動機構55毎の電動モータ55a,55bのそれぞれの回転軸(またはこれに連動して回転する回転部材)の回転角である実マスターモータ回転角を、各移動接地部54の実際の動作状態を示す状態量として検出可能な検出器である。該モータ回転検出器56は、スレーブモータ回転検出器6と同じ構成のものを使用し得る。また、スライド変位検出器67も、スレーブスライド変位検出器37と同じ構成のものを使用し得る。
また、架台変位検出器76は、例えば各架台駆動機構71の各架台アクチュエータ75の出力部(又は該出力部に連動して回転もしくは並進移動する部材)の実際の変位(回転角もしくは並進変位)である実架台アクチュエータ変位を該架台駆動機構71に対応する足部架台70の実架台変位を示す状態量として検出可能な検出器である。また、基台傾斜検出器59は、例えば各基台傾斜アクチュエータ58の出力部(又はこれに連動して回転もしくは並進移動する部材)の実際の変位(回転角もしくは並進変位)である実基台傾斜アクチュエータ変位を実マスター基台傾斜状態を示す状態量として検出可能な検出器である。これらの架台変位検出器76及び基台傾斜変位検出器59は、例えばロータリエンコーダ、レゾルバ、ポテンショメータ等により構成され得る。
なお、各足部架台70の実架台変位を検出可能な検出器は、例えば、各足部架台70の回転運動に関する各軸周りの回転角と、各足部架台70の並進運動に関する各軸方向の並進変位とを、接触式又は非接触式の適宜の変位センサにより検出し得るように構成されていてもよい。
オペレータ足部位置姿勢検出器77は、例えばマスター装置51に搭乗したオペレータPの左右の各足部を撮影し得るようにマスター装置51に搭載された一つ以上のカメラ(図示省略)を含み、このカメラの撮影映像から、公知のモーションキャプチャの手法により各足部毎の実オペレータ足部位置位置姿勢を検出(推定)し得るように構成されている。
補足すると、オペレータ足部位置姿勢検出器77は、モーションキャプチャ以外の手法により実オペレータ足部位置姿勢を推定し得るように構成されていてもよい。例えば、オペレータPの各足部に、加速度センサ及び角速度センサを含む慣性センサを装着し、この慣性センサにより検出される加速度及び角速度から、ストラップダウン方式等の公知の手法により、実オペレータ足部の位置姿勢を推定することも可能である。この他、実オペレータ足部位置姿勢を推定する手法として、物体の自己位置及び姿勢の推定を行い得る様々な公知の手法を使用し得る。
また、例えばオペレータPの各脚の各関節(股関節、膝関節及び足首関節)のそれぞれの変位を検出可能な関節変位検出器を各脚に装着しておき、各脚の関節の変位の検出値から、各脚の剛体リンクモデルを用いて、オペレータPの上体に対する各足部の実際の相対的な位置姿勢を推定することも可能である。
なお、マスター装置51には、モータ回転検出器56、足部力検出器74、基台傾斜変位検出器59、及び架台変位検出器76がそれぞれ複数備えられているが、図5及び図6では、それぞれの1つだけを代表的に記載している。
制御装置91は、例えばマイクロコンピュータ、メモリ、インターフェース回路等を含む1つ以上の電子回路ユニットにより構成される。詳細な説明は後述するが、この制御装置91には、スレーブ装置1から通信装置90を介して実スレーブ状態を示すデータが入力されると共に、マスター装置51に搭載された各検出器(上体力検出器64、各モータ回転検出器56、各足部力検出器74、各基台傾斜検出器59、各架台変位検出器76、及びオペレータ足部位置姿勢検出器77)の検出データが入力される。
そして、制御装置91は、実装されたハードウェア構成及びプログラム(ソフトウェア構成)の両方又は一方により実現される機能として、スレーブ装置1及びマスター装置51の全体の動作目標(目標運動)を生成するメイン操縦制御部94としての機能と、基台3、上体支持部65及び各足部架台70の運動を、各移動駆動機構55の電動モータ55a,55bと、スライドアクチュエータ66と、架台アクチュエータ75と、基台傾斜アクチュエータ58を介して制御するマスター移動制御部92としての機能とを有する。また、制御装置91は、スレーブ装置1の動作目標(目標運動)を示す指令データを通信装置90を介してスレーブ装置1に出力(送信)することが可能である。
以降の説明では、マスター装置51の構成要素の名称の先頭に、適宜、「マスター」を付して記載する場合がある。例えば、マスター装置51の基台53をマスター基台53と記載する場合がある。
補足すると、本実施形態では、マスター装置51の電動モータ55a,55bの全体が本発明における第1アクチュエータに相当し、架台アクチュエータ75の全体が本発明における第2アクチュエータに相当し、スライドアクチュエータ66が本発明における第4アクチュエータに相当する。また、スレーブ制御装置41及びマスター制御装置91の両方が本発明における制御装置に相当する。
[制御処理及び作動]
次に、前記制御装置41,91の制御処理の詳細と、スレーブ装置1及びマスター装置51の作動とを説明する。ここで、以降の説明において、任意の物体の運動に関する状態量の名称の先頭に「仮想」を付加したもの、あるいは、該状態量の参照符号に「_vir」という添え字を付加したものは、前記仮想床に対する該物体の運動に関する状態量の観測値を意味する。また、先頭に「↑」を付した参照符号は、ベクトル(縦ベクトル)を表す参照符号である。
また、スレーブ装置1の動作環境(移動環境)に任意に設計的に設定したグローバル座標系(スレーブ床に対して固定された3軸直交座標系)をスレーブ側グローバル座標系Csと称し、該スレーブ側グローバル座標系Csの3つの座標軸をXs軸、Ys軸、Zs軸と称する。この場合、Zs軸は、上下方向(鉛直方向もしくはほぼ鉛直な方向)の座標軸、Xs軸及びYs軸は、横方向(水平方向もしくはほぼ水平な方向)の座標軸である。
同様に、マスター装置51の動作環境(移動環境)に任意に設計的に設定したグローバル座標系(マスター床に対して固定された3軸直交座標系)をマスター側グローバル座標系Cmと称し、該マスター側グローバル座標系Cmの3つの座標軸をXm軸、Ym軸、Zm軸と称する。この場合、Zm軸は、上下方向(鉛直方向もしくはほぼ鉛直な方向)の座標軸、Xm軸及びYm軸は、横方向(水平方向もしくはほぼ水平な方向)の座標軸である。
また、前記仮想床に対する物体の運動を表現するために該仮想床に対して固定された3軸直交座標系を仮想床座標系Cvirと称し、該仮想床座標系Cvirの3つの座標軸をXvir軸、Yvir軸、Zvir軸と称する。この場合、Zvir軸は、上下方向(鉛直方向もしくはほぼ鉛直な方向)の座標軸、Xvir軸及びYvir軸は、横方向(水平方向もしくはほぼ水平な方向)の座標軸である。
[メイン操縦制御部の制御処理]
まず、マスター制御装置91のメイン操縦制御部94の制御処理を説明する。メイン操縦制御部94は、図7のフローチャートに示す処理を所定の制御処理周期で逐次実行する。STEP1において、メイン操縦制御部94は、スレーブ装置1の動作状態としてのスレーブ状態を示すデータをスレーブ制御装置41から通信装置40,90を介して取得(受信)する。
上記スレーブ状態には、図5に示す如く、スレーブ上体が外界から実際に受ける反力(床反力を除く)である実スレーブ上体反力と、スレーブ上体の実際の運動である実スレーブ上体運動とが含まれる。
上記実スレーブ上体反力は、より詳しくは、前記支柱31、カバー26、又はマニピュレータ10を介してスレーブ上体が外界から受ける実際の反力の合力である。また、実スレーブ上体反力は、並進力とモーメントとの組により構成される。そして、STEP1でメイン操縦制御部94が取得する実スレーブ上体反力の並進力及びモーメントのそれぞれは、スレーブ側グローバル座標系Csで見た3次元のベクトルとして表される。
この場合、実スレーブ上体反力のモーメントは、より詳しくは、スレーブ装置1に対して設定された所定の基準点(以降、スレーブ基準点Qsという)の周りでのモーメントである。該スレーブ基準点Qsは、スレーブ装置1の構造等を考慮して適宜、設計的に設定され得る。
本実施形態では、マスター移動機構52と、スレーブ移動機構2とが、類似する構成を有することから、例えば、スレーブ基準点Qsとスレーブ移動機構2との位置関係と、マスター装置51における後述する基準点Qmとマスター移動機構52との位置関係とが、互いにほぼ同一の関係、もしくは相似する関係になるように、スレーブ基準点Qsが設定され得る。図12Aに示すスレーブ基準点Qsは、このような観点で設定した基準点を例示している。なお、図12Aでは、マニピュレータ10の図示を省略している。以降の説明では、実スレーブ上体反力の並進力及びモーメントをそれぞれ表す参照符号として、それぞれ↑F_sb_act、↑M_sb_actを用いる。
また、実スレーブ上体運動は、スレーブ側グローバル座標系Csで見たスレーブ上体の位置↑P_sb_act、並進速度↑V_sb_act、姿勢角↑θ_sb_act、及び角速度↑ω_sb_actを含む。なお、スレーブ上体の位置↑P_sb_actは、スレーブ上体に対してあらかじめ設定(定義)された代表点の位置、例えば、前記スレーブ基準点Qsの位置である。また、本実施形態では、スレーブ上体の姿勢角↑θ_sb_actのヨー方向成分はスレーブ基台3の姿勢角のヨー方向成分に一致するとみなす。
補足すると、スレーブ制御装置41からメイン操縦制御部94に対して出力されるスレーブ状態の全体又は一部は、スレーブ装置1に対して設定されたローカル座標系(例えば、後述のスレーブ上体座標系Csb)で見た状態量であってもよい。この場合には、メイン操縦制御部94は、STEP1において、スレーブ制御装置41から与えられたスレーブ状態(ローカル座標系で見た実スレーブ状態)を、スレーブ側グローバル座標系Csで見た実スレーブ状態に変換して取得する。
また、本実施形態では、スレーブ上体の運動のうち、横方向の軸周りの姿勢角及び角速度は制御対象としない。このため、STEP1では、メイン操縦制御部94は、実スレーブ上体運動の姿勢角↑θ_sb_act及び角速度↑ω_sb_actのうち、横方向の軸周りの姿勢角及び角速度を取得することを省略し得ると共に、実スレーブ上体反力のモーメント↑M_sb_actのうち、横方向の軸周りのモーメントを取得することを省略し得る。換言すれば、メイン操縦制御部94が取得する実スレーブ上体運動の姿勢角及び角速度は、ヨー方向(Zs軸周り方向)の成分だけでもよい。
次いで、STEP2において、メイン操縦制御部94は、マスター装置51の動作状態としてのマスター状態を示すデータを、マスター移動制御部92から取得する。このマスター状態には、図5に示す如く、上体支持部65がオペレータPから受ける実際の反力である実上体支持部反力と、仮想床に対する上体支持部65の運動である仮想上体支持部運動とが含まれる。
上記実上体支持部反力は、並進力とモーメントとの組により構成される。そして、これらの並進力及びモーメントのそれぞれは、仮想床座標系Cvirで見た3次元のベクトルとして表される。該仮想床座標系Cvirは、マスター装置51上でのオペレータPの歩行動作の開始前等において、マスター側グローバル座標系Cmに対する仮想床座標系Cvirの原点の位置と各座標軸(Xvir軸、Yvir軸及びZvir軸)の方向とが任意に初期設定される。この場合、仮想床座標系CvirのZvir軸の方向は、マスター側グローバル座標系CmのZm軸の方向と同じ(上下方向)である。ただし、本実施形態では、仮想床及び仮想床座標系Cvirは、オペレータPの歩行動作の開始後、マスター側グローバル座標系Cmに対して動くように設定される。
また、実上体支持部反力のモーメントは、より詳しくは、例えばマスター装置51に対して設定された所定の基準点(以降、マスター基準点Qmという)の周りでのモーメントである。該マスター基準点Qmは、例えば図12Bに示す如く、前記支軸63の軸心上で、上体支持部65の左右の両側部の間の中間点(上体支持部65を装着したオペレータPの腰部の中心付近の点)に設定され得る。以降、実上体支持部反力の並進力及びモーメントをそれぞれ表す参照符号として、それぞれ↑F_mb_act、↑M_mb_actを用いる。
また、仮想上体支持部運動は、仮想床座標系Cvirで見た上体支持部65の位置↑P_mb_vir、並進速度↑V_mb_vir、姿勢角↑θ_mb_vir、及び角速度↑ω_mb_virを含む。該仮想上体支持部運動は、仮想床に対する上体支持部65の運動を、後述の目標上体支持部運動に従って行ったと仮定した場合に実現され得る上体支持部65の運動の推定値を意味する。
ここで、上体支持部65の位置↑P_mb_virは、上体支持部65に対してあらかじめ設定された代表点の位置、例えば前記マスター基準点Qmの位置である。また、本実施形態では、上体支持部65の横方向位置(Xir軸方向位置及びYvir軸方向位置)は、マスター基台53の横方向位置に一致し、上体支持部65のヨー方向の姿勢角(向き)はマスター基台53のヨー方向の姿勢角(向き)に一致するとみなす。なお、本実施形態では、上体支持部65の横方向位置は、基台53に対して固定されているので、上体支持部65の横方向位置は、基台3の横方向位置としての意味も持つ。
補足すると、マスター移動制御部92からメイン操縦制御部94に対して出力されるマスター状態の全体又は一部は、マスター装置51に対して設定されたローカル座標系(例えば、後述のマスター上体座標系Cmb)で見た状態量であってもよい。この場合には、メイン操縦制御部94は、STEP2において、マスター移動制御部92から与えられたマスター状態(ローカル座標系で見たマスター状態)を、仮想床座標系Cvirで見たマスター状態に変換して取得する。
また、本実施形態では、上体支持部65の運動のうち、横方向の軸周りの姿勢角及び角速度は制御対象としない。このため、STEP2では、メイン操縦制御部94は、仮想上体支持部運動の姿勢角↑θ_mb_vir及び角速度↑ω_mb_virのうち、横方向の軸周りの姿勢角及び角速度を取得することを省略し得ると共に、仮想上体支持部反力のモーメント↑M_mb_virのうち、横方向の軸周りのモーメントを取得することを省略し得る。換言すれば、メイン操縦制御部94が取得する仮想上体支持部運動の姿勢角及び角速度は、ヨー方向(Zvir軸周り方向)の成分だけでもよい。
次いで、STEP3において、メイン操縦制御部94は、マスター装置51の上体支持部65及びスレーブ上体の動作に関するバイラテラル制御である上体側バイラテラル制御の処理を実行する。この上体側バイラテラル制御の処理は、図8のフローチャートに示す如く実行される。
STEP3−1において、メイン操縦制御部94は、上体反力偏差を算出する。この上体反力偏差は、本実施形態では、並進力に関する上体反力偏差である上体反力並進力偏差↑Efbと、モーメントに関する上体反力偏差である上体反力モーメント偏差↑Embとから構成される。
そして、上体反力並進力偏差↑Efbは、例えば、実スレーブ上体反力の並進力↑F_sb_actと、実上体支持部反力の並進力↑F_mb_actとの相互の関係の、所定の目標関係からのずれの度合い(乖離度合い)を表す指標値として定義される。
同様に、上体反力モーメント偏差↑Embは、例えば、実スレーブ上体反力のモーメント↑M_sb_actと、実上体支持部反力のモーメント↑M_mb_actとの相互の関係の、所定の目標関係からのずれの度合い(乖離度合い)を表す指標値として定義される。
具体的には、本実施形態では、上体反力並進力偏差↑Efbは、実上体支持部反力の並進力↑F_mb_actと実スレーブ上体反力の並進力↑F_sb_actとを線形結合してなる関数により表される指標値として、例えば次式(1a)により定義される。
同様に、上体反力モーメント偏差↑Embは、実上体支持部反力のモーメント↑M_mb_actと、実スレーブ上体反力のモーメント↑M_sb_actとを線形結合してなる関数により表される指標値として、例えば式(1b)により定義される。なお、本明細書では、乗算記号として「*」を使用する。
↑Efb=↑F_mb_act+Ratio_fsb*↑F_sb_act ……(1a)
↑Emb=↑M_mb_act+Ratio_msb*↑M_sb_act ……(1b)
ここで、式(1a),(1b)のRatio_fsb,Ratio_msb,は、それぞれ、オペレータPに対する↑F_sb_act、↑M_sb_actのそれぞれの帰還率を表す係数であり、それぞれあらかじめ定めた所定値に設定される。該係数は、スカラー及び対角行列のいずれでもよい。本実施形態では、式(1a),(1b)のそれぞれの右辺の第2項の係数Ratio_fsb,Ratio_msbは互いに同じ値(≠0)に設定される。ただし、Ratio_fsb,Ratio_msbを互いに異なる値に設定すること、あるいは、Ratio_fsb,Ratio_msbをそれぞれゼロに設定することも可能である。
本実施形態では、式(1a)により定義される上体反力並進力偏差↑Efbがゼロになること(↑F_mb_act=−Ratio_fsb*↑F_sb_actになること)が、↑F_mb_act、↑F_sb_act、の相互の目標関係であり、式(1b)により定義される上体反力モーメント偏差↑Embがゼロになること(↑M_mb_act=−Ratio_msb*↑M_sb_actになること)が、↑M_mb_act、↑M_sb_actの相互の目標関係である。
そして、STEP3−1では、メイン操縦制御部94は、前記STEP1で取得した実スレーブ上体反力(↑F_sb_act,↑M_sb_act)と、前記STEP2で取得した実上体支持部反力(↑F_mb_act,↑M_mb_act)とから上記式(1a),(1b)に従って、上体反力偏差(↑Efb,↑Emb)を算出する。
次いで、STEP3−2において、メイン操縦制御部94は、上体位置姿勢偏差を算出する。この上体位置姿勢偏差は、上体支持部65及びスレーブ上体のそれぞれの位置に関する上体位置偏差↑Epbと、上体支持部65及びスレーブ上体のそれぞれの姿勢(向き)に関する上体姿勢偏差↑Ethbとから構成される。
そして、上体位置偏差↑Epbは、仮想上体支持部運動のうちの上体支持部65の位置↑P_mb_virと実スレーブ上体運動のうちのスレーブ上体の位置↑P_sb_actとの相互の関係の、所定の目標関係からのずれ度合い(乖離度合い)を表す指標値として定義される。同様に、上体姿勢偏差↑Ethbは、仮想上体支持部運動のうちの上体支持部65の姿勢角↑θ_mb_virと実スレーブ上体運動のうちのスレーブ上体の姿勢角↑θ_sb_actとの相互の関係の、所定の目標関係からのずれ度合い(乖離度合い)を表す指標値として定義される。
具体的には、本実施形態では、上体位置偏差↑Epbは、上体支持部65の位置↑P_mb_virとスレーブ上体の位置↑P_sb_actとを線形結合してなる関数により表される指標値として、例えば次式(2a)により定義される。
同様に、上体姿勢偏差↑Ethbは、上体支持部65の姿勢角↑θ_mb_virとスレーブ上体の姿勢角↑θ_sb_actとを線形結合してなる関数により表される指標値として、例えば式(2b)により定義される。
↑Epb=↑P_mb_vir−Ratio_psb*↑P_sb_act ……(2a)
↑Ethb=↑θ_mb_vir−Ratio_thsb*↑θ_sb_act ……(2b)
ここで、式(2a),(2b)の係数Ratio_psb,Ratio_thsbは、それぞれ、あらかじめ設定された所定値の係数(スカラー、又は対角行列)である。また、本実施形態では、Ratio_psb,Ratio_thsbは、互いに同じ値(≠0)に設定される。ただし、Ratio_psb,Ratio_thsbを互いに異なる値に設定すること、あるいは、Ratio_psb,Ratio_thsbをそれぞれゼロに設定することも可能である。
本実施形態では、式(2a)により定義される上体位置偏差↑Epbがゼロになること(↑P_mb_vir=Ratio_psb*↑P_sb_actになること)が、↑P_mb_vir,↑P_sb_actの相互の目標関係であり、式(2b)により定義される上体姿勢偏差↑Ethbがゼロになること(↑θ_mb_vir=Ratio_thsb*↑θ_sb_actになること)が、↑θ_mb_vir,↑θ_sb_actの相互の目標関係である。
そして、STEP3−2では、メイン操縦制御部94は、前記STEP1で取得した実スレーブ上体運動のうちの位置↑P_sb_act及び姿勢角↑θ_sb_actと、前記STEP2で取得した仮想上体支持部運動のうちの位置↑P_mb_vir及び姿勢角↑θ_mb_virとから、上記式(2a),(2b)に従って、上体位置姿勢偏差(↑Epb,↑Ethb)を算出する。
次いで、STEP3−3において、メイン操縦制御部94は、上体反力偏差及び上体位置姿勢偏差をゼロに収束させるように、上体支持部65の並進加速度及び角加速度のそれぞれの目標値である目標上体支持部並進加速度↑Acc_mb_aim及び目標上体支持部角加速度↑β_mb_aimと、スレーブ上体の並進加速度及び角加速度のそれぞれの目標値である目標スレーブ上体並進加速度↑Acc_sb_aim及び目標スレーブ上体角加速度↑β_sb_aimとを決定する。
この場合、より詳しくは、目標上体支持部並進加速度↑Acc_mb_aim及び目標スレーブ上体並進加速度↑Acc_sb_aimは、上体反力並進力偏差↑Efb及び上体位置偏差↑Epbをそれぞれゼロに収束させるように決定され、目標上体支持部角加速度↑β_mb_aim及び目標スレーブ上体角加速度↑β_sb_aimは、上体反力モーメント偏差↑Emb及び上体姿勢偏差↑Ethbをそれぞれゼロに収束させるように決定される。なお、目標上体支持部並進加速度↑Acc_mb_aim及び目標上体支持部角加速度↑β_mb_aimは、仮想床座標系Cvirで見た上体支持部65の並進加速度及び角加速度のそれぞれの目標値である。
目標上体支持部並進加速度↑Acc_mb_aim及び目標スレーブ上体並進加速度↑Acc_sb_aimを決定する手法と、目標上体支持部角加速度↑β_mb_aim及び目標スレーブ上体角加速度↑β_sb_aimを決定する手法とは互いに同様の手法である。以下に、↑Acc_mb_aim及び↑Acc_sb_aimを決定する手法を詳細に説明する。
上体支持部65とオペレータPとの間の剛性を表す係数をKmb、スレーブ上体と外界物(床面を除く)との間の剛性を表す係数をKsbと表記すると、実上体支持部反力の並進力↑F_mb_act↑と、仮想上体支持部運動のうちの位置↑P_mb_virとの間に近似的に次式(3a)の関係が成立するとみなし得る。同様に、実スレーブ上体反力の並進力↑F_sb_act↑と、実スレーブ上体運動のうちの位置↑P_sb_actとの間に近似的に次式(4a)の関係が成立するとみなし得る。
↑F_mb_act=−Kfmb*↑P_mb_vir+↑Cfmb ……(3a)
↑F_sb_act=−Kfsb*↑P_sb_act+↑Cfsb ……(4a)
なお、係数Kfmb,Kfsbはそれぞれ、所謂ばね定数に相当する所定値の係数(スカラー又は対角行列)である。また、↑Cfmb,↑Cfsbはそれぞれ、定数ベクトル(各成分が、ある値の定数であるベクトル)である。
前記式(1a)、(3a)、(4a)から、次式(5a)が得られる。
↑Efb=(−Kfmb*↑P_mb_vir+↑Cfmb)
+Ratio_fsb*(−Kfsb*↑P_sb_act+↑Cfsb)
=−Kfmb*↑P_mb_vir−Ratio_fsb*Kfsb*↑P_sb_act
+↑Cfmb+Ratio_fsb*↑Cfsb …(5a)
ここで、変数↑ua,↑vaをそれぞれ次式(6a),(7a)により定義する。
↑ua=−Kfmb*↑P_mb_vir−Ratio_fsb*Kfsb*↑P_sb_act ……(6a)
↑va=↑P_mb_vir−Ratio_psb*↑P_sb_act ……(7a)
このとき、前記式(2a),(5a),(6a),(7a)から次式(8a),(9a)が得られる。
↑Efb=↑ua+↑Cfmb+Ratio_fsb*↑Cfsb …(8a)
↑Epb=↑va ……(9a)
また、上体反力並進力偏差↑Efbをゼロに収束させるためには、該上体反力並進力偏差↑Efbの2階微分値が、次式(10a)の関係式を満たす目標値↑Efb_dotdot_aimに一致すればよい。同様に、上体位置偏差↑Epbをゼロに収束させるためには、該上体位置偏差↑Epbの2階微分値が、次式(11a)の関係式を満たす目標値↑Epb_dotdot_aimに一致すればよい。
↑Efb_dotdot_aim=−Kfbp*↑Efb−Kfbv*↑Efb_dot ……(10a)
↑Epb_dotdot_aim=−Kpbp*↑Epb−Kpbv*↑Epb_dot ……(11a)
なお、式(10a)の右辺の係数Kfbp、Kfbvは、所定値のゲイン(スカラー又は対角行列)であり、↑Efb_dotは、↑Efbの1階微分値(時間的変化率)である。また、式(11a)の右辺の係数Kpbp、Kpbvは、所定値のゲイン(スカラー又は対角行列)であり、↑Epb_dotは、↑Epbの1階微分値(時間的変化率)である。
補足すると、本明細書では、「_dot」を付加した参照符号は、「_dot」を除去した参照符号により示される状態量の1階微分値(時間的変化率)を表し、「_dotdot」を付加した参照符号は、「_dotdot」を除去した参照符号により示される状態量の2階微分値を表す。
一方、前記式(8a),(9a)のそれぞれの両辺を2階微分することで、次式(12a),(13a)が得られる。
↑Efb_dotdot=↑ua_dotdott …(12a)
↑Epb_dotdot=↑va_dotdot ……(13a)
従って、上体反力並進力偏差↑Efbをゼロに収束させるための↑ua_dotdotの目標値をua_dotdot_aim、上体位置偏差↑Epbをゼロに収束させるための↑va_dotdotの目標値を↑va_dotdot_aimと表記すると、式(12a),(13a)から次式(14a),(15a)が得られる。
↑Efb_dotdot_aim=↑ua_dotdot_aim …(14a)
↑Epb_dotdot_aim=↑va_dotdot_aim ……(15a)
そして、前記式(10a),(11a),(14a),(15a)から、次式(16a),(17a)が得られる。
↑ua_dotdot_aim
=−Kfbp*↑Efb−Kfbv*↑Efb_dot ……(16a)
↑va_dotdot_aim
=−Kpbp*↑Epb−Kpbv*↑Epb_dot ……(17a)
また、式(6a),(7a)のそれぞれの両辺を2階微分することよって得られる関係式から、目標上体支持部並進加速度↑Acc_mb_aim及び目標スレーブ上体並進加速度↑Acc_sb_aimに関する次式(18a),(19a)が得られる。
↑ua_dotdot_aim=−Kfmb*↑Acc_mb_aim
−Ratio_fsb*Kfsb*↑Acc_sb_aim ……(18a)
↑va_dotdot_aim=↑Acc_mb_aim−Ratio_psb*↑Acc_sb_aim ……(19a)
式(18a),(19a)を連立方程式として、↑Acc_mb_aim及び↑Acc_sb_aimを求めることによって、次式(20a),(21a)が得られる。
↑Acc_mb_aim
=−(Ratio_psb/(Kfmb*Ratio_psb+Ratio_fsb*Kfsb))*↑ua_dotdot_aim
+(Ratio_fsb*Kfsb/(Kfmb*Ratio_psb
+Ratio_fsb*Kfsb))*↑va_dotdot_aim
……(20a)
↑Acc_sb_aim
=−(1/(Kfmb*Ratio_psb+Ratio_fsb*Kfsb))*↑ua_dotdot_aim
−(Kfmb/(Kfmb*Ratio_psb
+Ratio_fsb*Kfsb))*↑va_dotdot_aim
……(21a)
上記式(16a),(17a),(20a),(21a)が目標上体支持部並進加速度↑Acc_mb_aim及び目標スレーブ上体並進加速度↑Acc_sb_aimを決定するための式である。
この場合、STEP3−1で求めた上体反力並進力偏差↑Efbと、その1階微分値(時間的変化率)として求められる↑Efb_dotとから、式(16a)に従って、↑ua_dotdot_aimが算出される。また、STEP3−2で求めた上体位置偏差↑Epbと、その1階微分値(時間的変化率)として求められる↑Epb_dotとから、式(17a)に従って、↑va_dotdot_aimが算出される。
そして、これらの↑ua_dotdot_aim,↑va_dotdot_aimの算出値から、式(20a),(21a)に従って、目標上体支持部並進加速度↑Acc_mb_aim及び目標スレーブ上体並進加速度↑Acc_sb_aimが算出される。これにより、上体反力並進力偏差↑Efbと、上体位置偏差↑Epbとをゼロに収束させるように、↑Acc_mb_aim,↑Acc_sb_aimが決定される。
補足すると、式(1a),(2a)と、式(1a),(2a)のそれぞれの両辺を微分した関係式と、式(16a),(17a)とから、次式(22a),(23a)が得られる。
↑ua_dotdot_aim
=−Kfbp*↑Efb−Kfbv*↑Efb_dot
=−Kfbp*(↑F_mb_vir+Ratio_fsb*↑F_sb_act)
−Kfbv*(↑F_mb_dot_vir+Ratio_fsb*↑F_sb_dot_act)
……(22a)
↑va_dotdot_aim
=−Kpbp*↑Epb−Kpbv*↑Epb_dot
=−Kpbp*(↑P_mb_vir−Ratio_psb*↑P_sb_act)
−Kpbv*(↑P_mb_dot_vir−Ratio_psb*↑P_sb_dot_act)
=−Kpbp*(↑P_mb_vir−Ratio_psb*↑P_sb_act)
−Kpbv*(↑V_mb_vir−Ratio_psb*↑V_sb_act) ……(23a)
従って、前記STEP2で取得された実上体支持部反力の並進力↑F_mb_actと、前記STEP1で取得された実スレーブ上体反力の並進力↑F_sb_actとのそれぞれと、これらの1階微分値(時間的変化率)として求められる↑F_mb_dot__act、↑F_sb_ dot_actとから、式(22a)に従って、↑ua_dotdot_aimを算出することもできる。
また、前記STEP2で取得された仮想上体支持部運動のうちの位置↑P_mb_vir及び並進速度↑V_mb_virと、前記STEP1で取得された実スレーブ上体運動のうちの位置↑P_sb_act及び並進速度↑V_sb_actとから、式(23a)に従って、↑va_dotdot_aimを算出することもできる。
このようにした場合にはSTEP3−1及び3−2のそれぞれで、上体反力並進力偏差↑Efbと上体位置偏差↑Epbとを算出する処理は不要である。
さらに、式(16a),(17a)の組、又は式(22a),(23a)の組と、式(20a),(21a)の組とを統合した関係式(↑ua_dotdot_aim,↑va_dotdot_aimを含まない関係式)により、↑Acc_mb_aim,↑Acc_sb_aimを算出することもできる。
目標上体支持部角加速度↑β_mb_aim及び目標スレーブ上体角加速度↑β_sb_aimを決定するための関係式も、上記と同様に得られる。この場合、前記式(3a),(4a),(6a),(7a),(10a),(11a)にそれぞれ対応する関係式として、次式(3b),(4b),(6b),(7b),(10b),(11b)がそれぞれ定義される。
↑M_mb_vir=−Kmmb*↑θ_mb_vir+↑Cmmb ……(3b)
↑M_sb_act=−Kmsb*↑θ_sb_act+↑Cmsb ……(4b)
↑ub=−Kmmb*↑θ_mb_vir−Ratio_msb*Kmsb*↑θ_sb_act ……(6b)
↑vb=↑θ_mb_vir−Ratio_thsb*↑θ_sb_act ……(7b)
↑Emb_dotdot_aim=−Kmbp*↑Emb−Kmbv*↑Emb_dot ……(10b)
↑Ethb_dotdot_aim=−Kthbp*↑Ethb−Kthbv*↑Ethb_dot ……(11b)
なお、式(3b),(6b)のKmmb及び式(4b)、(6b)の係数Kmsbはそれぞれ、式(3a)の係数Kfmb、式(4a)の係数Kfsbと同様に、剛性を表す所定値の係数(スカラー又は対角行列)であり、式(3b)の↑Cmmb及び式(4b)の↑Cmsbはそれぞれ、定数ベクトルである。また、式(10b)の係数Kmbp、Kmbv及び式(11b)の係数Kthbp、Kthbvは、それぞれ所定値のゲイン(スカラー又は対角行列)である。
そして、これらの式(3b),(4b),(6b),(7b),(10b),(11b)と前記式(1b),(2b)とから、前記式(16a),(17a),(20a),(21a)にそれぞれ対応する次式(16b),(17b),(20b),(21b)が得られる。
↑ub_dotdot_aim
=−Kmbp*↑Emb−Kmbv*↑Emb_dot ……(16b)
↑vb_dotdot_aim
=−Kthbp*↑Ethb−Kthbv*↑Ethb_dot ……(17b)
↑β_mb_aim
=−(Ratio_thsb/(Kmmb*Ratio_thsb+Ratio_msb*Kmsb))*↑ub_dotdot_aim
+(Ratio_msb*Kmsb/(Kmmb*Ratio_thsb
+Ratio_msb*Kmsb))*↑vb_dotdot_aim
……(20b)
↑β_sb_aim
=−(1/(Kmmb*Ratio_thsb+Ratio_msb*Kmsb))*↑ub_dotdot_aim
−(Kmmb/(Kmmb*Ratio_thsb
+Ratio_msb*Kmsb))*↑vb_dotdot_aim
……(21b)
上記式(16b),(17b),(20b),(21b)が目標上体支持部角加速度↑β_mb_aim及び目標スレーブ上体角加速度↑β_sb_aimを決定するための式である。この場合、STEP3−1で求めた上体反力モーメント偏差↑Embと、その1階微分値(時間的変化率)として求められる↑Emb_dotとから、式(16b)に従って、↑ub_dotdot_aimが算出される。また、STEP3−2で求めた上体姿勢偏差↑Ethbと、その1階微分値(時間的変化率)として求められる↑Ethb_dotとから、式(17b)に従って、↑vb_dotdot_aimが算出される。
そして、これらの↑ub_dotdot_aim,↑vb_dotdot_aimの算出値から、式(20b),(21b)に従って、目標上体支持部角加速度↑β_mb_aim及び目標スレーブ上体角加速度↑β_sb_aimが算出される。これにより、上体反力モーメント偏差↑Embと、上体姿勢偏差↑Ethbとがゼロに収束するように、↑β_mb_aim,↑β_sb_aimが決定される。
補足すると、式(1b),(2b)と、式(1b),(2b)のそれぞれの両辺を微分した関係式と、式(16b),(17b)とから、次式(22b),(23b)が得られる。
↑ub_dotdot_aim
=−Kmbp*(↑M_mb_act+Ratio_msb*↑M_sb_act)
−Kmbv*(↑M_mb_dot_act+Ratio_msb*↑M_sb_dot_act) ……(22b)
↑vb_dotdot_aim
=−Kthbp*(↑θ_mb_vir−Ratio_thsb*↑θ_sb_act)
−Kthbv*(↑ω_mb_vir−Ratio_thsb*↑ω_sb_act) ……(23b)
従って、前記STEP2で取得された実上体支持部反力のモーメント↑M_mb_actと、前記STEP1で取得された実スレーブ上体反力のモーメント↑M_sb_actとのそれぞれと、これらの1階微分値(時間的変化率)として求められる↑M_mb_dot_act、↑M_sb_dot_actとから、式(22b)に従って、↑ub_dotdot_aimを算出することもできる。
また、前記STEP2で取得された仮想上体支持部運動のうちの姿勢角↑θ_mb_vir及び角速度↑ω_mb_virと、前記STEP1で取得された実スレーブ上体運動のうちの姿勢角↑θ_sb_act及び角速度↑ω_sb_actとから、式(23b)に従って、↑vb_dotdot_aimを算出することもできる。このようにした場合にはSTEP3−1及び3−2のそれぞれで、上体反力モーメント偏差↑Embと、上体姿勢偏差↑Ethbとを算出する処理は不要である。
さらに、式(16b),(17b)の組、又は式(22b),(23b)の組と、式(20b),(21b)の組とを統合した関係式(↑ub_dotdot_aim,↑vb_dotdot_aimを含まない関係式)により、↑β_mb_aim,↑β_sb_aimを算出することもできる。
なお、本実施形態では、上体支持部65及びスレーブ上体のそれぞれの運動のうち、横方向の軸周りの姿勢角及び角速度は制御対象としない。このため、↑β_mb_aim,↑β_sb_aimのうち、横方向の軸周りの角加速度の算出は省略してもよい。
STEP3の上体側バイラテラル制御の処理は、以上の如く実行される。これにより、上体支持部65の目標運動である目標上体支持部運動の構成要素としての目標上体支持部並進加速度↑Acc_mb_aim及び目標上体支持部角加速度↑β_mb_aimと、スレーブ上体の目標運動である目標スレーブ上体運動の構成要素としての目標スレーブ上体並進加速度↑Acc_sb_aim及び目標スレーブ上体角加速度↑β_sb_aimが決定される。
なお、目標上体支持部並進加速度↑Acc_mb_aim及び目標上体支持部角加速度↑β_mb_aimは、仮想床座標系Cvirで見た並進加速度及び角加速度であり、目標スレーブ上体並進加速度↑Acc_sb_aim及び目標スレーブ上体角加速度↑β_sb_aimは、スレーブ側グローバル座標系Csで見た並進加速度及び角加速度である。
図7に戻って、メイン操縦制御部94は、上記の如く決定した目標上体支持部運動(↑Acc_mb_aim,↑βmb_aim)と、目標スレーブ上体運動(↑Acc_sb_aim,↑βmsb_aim)とを出力することをSTEP4,5で実行する。以上が、メイン操縦制御部94の処理である。
[スレーブ移動制御部の制御処理]
次に、スレーブ制御装置41のスレーブ移動制御部42の制御処理を図9を参照して説明する。スレーブ移動制御部42は、図9のフローチャートに示す処理を所定の制御処理周期で逐次実行する。
STEP10において、スレーブ移動制御部42は、目標スレーブ上体運動を取得する。具体的には、スレーブ移動制御部42は、メイン操縦制御部94で決定された目標スレーブ上体並進加速度↑Acc_sb_aim及び目標スレーブ上体角加速度↑β_sb_aimをメイン操縦制御部94から通信装置40,90を介して取得(受信)する。
さらに、スレーブ移動制御部42は、目標スレーブ上体並進加速度↑Acc_sb_aim及び目標スレーブ上体角加速度↑β_sb_aimをそれぞれ積分することで、スレーブ上体の目標並進速度である目標スレーブ上体並進速度↑V_sb_aimと、スレーブ上体の目標角速度である目標スレーブ上体角速度↑ω_sb_aimとを取得する。
さらに、スレーブ移動制御部42は、目標スレーブ上体並進速度↑V_sb_aim及び目標スレーブ上体角速度↑ω_sb_aimをそれぞれ積分することで、スレーブ上体の目標位置である目標スレーブ上体位置↑P_sb_aimと、スレーブ上体の目標姿勢角である目標スレーブ上体姿勢角↑θ_sb_aimとを取得する。
なお、↑V_sb_aim,↑P_sb_aim,↑ω_sb_aim,↑θ_sb_aimを求める処理は、メイン操縦制御部94で実行してもよい。そして、STEP10では、スレーブ移動制御部42は、↑V_sb_aim,↑P_sb_aim,↑ω_sb_aim,↑θ_sb_aimを、↑Acc_sb_aim,↑β_sb_aimと共に、あるいは、↑Acc_sb_aim,↑β_sb_aimの代わりにメイン操縦制御部94から取得してもよい。
STEP10ではさらに、スレーブ移動制御部42は、スレーブ上体力検出器33の出力により示される実スレーブ上体反力と、各スレーブ移動駆動機構5毎に、モータ回転検出器6の出力により示される電動モータ5a,5bのそれぞれの実スレーブモータ回転角と、スレーブスライド変位検出器37の出力により示される実スレーブスライド変位と、スレーブ床形状検出器7の出力により示される実スレーブ床形状(実スレーブ床傾斜角)とを取得する。
この場合、STEP10でスレーブ移動制御部42が取得する実スレーブ上体反力は、詳しくは、以下に説明するスレーブ上体座標系Csbで見た反力(並進力及びモーメント)である。該スレーブ上体座標系Csbは、スレーブ上体に対して設定されたローカル座標系であり、例えば、図1に示した如くXsb軸方向、Ysb軸方向、Zsb軸方向を設定した3軸直交座標系である。このスレーブ上体座標系Csbの原点は、例えば、前記スレーブ基準点Qs(スレーブ上体の代表点)に設定される(図12Aを参照)。
そして、STEP10でスレーブ移動制御部42が取得する実スレーブ上体反力のモーメントは、詳しくは、スレーブ上体座標系Csの原点(スレーブ基準点Qs)の周りのモーメントである。以降、STEP10で取得される、スレーブ上体座標系Csで見た実スレーブ上体反力の並進力の参照符号を↑F_sb_local_act、モーメントの参照符号を↑M_sb_local_actと表記する。
上記実スレーブ上体反力(↑F_sb_local_act,↑M_sb_local_act)は、スレーブ上体力検出器33に対して設定されたセンサ座標系で見た実スレーブ上体反力(並進力及びモーメント)の検出値を、スレーブ上体座標系Csbで見た実スレーブ上体反力に変換することで得られる。
また、STEP10でスレーブ移動制御部42が取得する実スレーブ床形状としての実スレーブ床傾斜角も、スレーブ上体座標系Csbで見た傾斜角である。該実スレーブ床傾斜角は、スレーブ上体座標系CsbのXsb軸周り方向(ロール方向)の傾斜角とYsb軸周り方向(ピッチ方向)の傾斜角との組として得られる。
次いで、STEP11において、スレーブ移動制御部42は、STEP10で取得した実スレーブモータ回転角(観測値)と実スレーブスライド変位(観測値)とを用いて、実スレーブ上体運動を求める。
具体的には、スレーブ移動制御部42は、まず、各スレーブ移動駆動機構5毎に、電動モータ5a,5bのそれぞれの実スレーブモータ回転角の時間的変化率を求める微分処理によって、該電動モータ5a,5bのそれぞれの回転軸の実際の回転速度(角速度)の観測値としての実モータ回転速度を求める。この場合、実スレーブモータ回転角の観測値の高周波ノイズ成分の影響を抑制するために、上記微分処理として、疑似微分(換言すれば、不完全微分)の処理を用いることが好ましい。
以降の説明では、スレーブ装置1の4つの移動接地部4(n)(n=1,2,3,4)のそれぞれに対応するスレーブ移動駆動機構5の電動モータ5a,5bのそれぞれの実モータ回転速度を表す参照符号として、それぞれ、ω_sw_mota_act(n),ω_sw_motb_act(n)(n=1,2,3,4)を用いる。
さらに、スレーブ移動制御部42は、各スレーブ移動接地部4(n)毎に、前記スレーブ上体座標系CsbのXsb軸方向(前後方向)での移動接地部4(n)の並進速度V_sw_local_x_act(n)と、該スレーブ上体座標系CsbのYsb軸方向(左右方向)での移動接地部4(n)の並進速度V_sw_local_y_act(n)とを、電動モータ5a,5bのそれぞれの実モータ回転速度ω_sw_mota_act(n),ω_sw_motb_act(n)から、次式(31a),(31b)により算出する。
V_sw_local_x_act(n)
=Cswx*(ω_sw_mota_act(n)+ω_sw_motb_act(n)) ……(31a)
V_sw_loxal_y_act(n)
=Cswy*(ω_sw_mota_act(n)−ω_sw_motb_act(n)) ……(31b)
上記係数Cswx,Cswyは、それぞれ、スレーブ移動駆動機構5の構造等に依存して規定される所定値の係数である。
そして、スレーブ移動制御部42は、次式(32a),(32b)で示す如く、4つの移動接地部4(1)〜4(4)のそれぞれのXsb軸方向の並進速度V_sw_local_x_act(1)〜V_sw_local_x_act(4)の平均値を、スレーブ上体座標系CsbのXsb軸方向でのスレーブ上体の並進速度V_sb_local_x_actとして求めると共に、4つの移動接地部4(1)〜4(4)のそれぞれのYsb軸方向の並進速度V_sw_local_y_act(1)〜V_sw_local_y_act(4)の平均値を、スレーブ上体座標系CsbのYsb軸方向でのスレーブ上体の並進速度V_sb_local_y__actとして求める。
V_sb_local_x_act
=(V_sw_local_x_act(1)+V_sw_local_x_act(2)
+V_sw_local_x_act(3)+V_sw_local_x_act(4))/4 ……(32a)
V_sb_local_y_act
=(V_sw_local_y_act(1)+V_sw_local_y_act(2)
+V_sw_local_y_act(3)+V_sw_local_y_act(4))/4 ……(32b)
また、スレーブ移動制御部42は、スレーブ上体座標系CsbのZsb軸の軸周り方向(ヨー方向)でのスレーブ基台3の角速度ω_sb_local_z_actを次式(33)により算出する。
ω_sb_local_z_act
=(V_sw_local_x_act(1)−V_sw_local_x_act(4))/(2*(Lswy(1)+Lswy(4)))
+(V_sw_local_x_act(2)−V_sw_local_x_act(3))/(2*(Lswy(2)+Lswy(3)))
……(33)
上記式(33)のLswy(1)、Lswy(2),Lswy(3),Lswy(4)はそれぞれ、図12Aに示す如く、スレーブ基準点Qsと、スレーブ基台3の左側前部の移動接地部4(1)、左側後部の移動接地部4(2)、右側後部の移動接地部4(3)、及び右側前部の移動接地部4(4)のそれぞれの接地部分との間のYsb軸方向(左右方向)の距離である。なお、この場合、Lswy(1),Lswy(2),Lswy(3),Lswy(4)のそれぞれの正負の極性は、Lswy(1)>0,Lswy(2)>0,Lswy(3)<0,Lswy(4)<0と定義している。なお、スレーブ基台3のヨー方向の角速度ω_sb_local_z_actは、例えば角速度センサを用いて検出することも可能である。
ここで、本実施形態では、スレーブ側グローバル座標系Cs(3軸直交座標系)の3つの座標軸方向(Xs軸方向、Ys軸方向、Zs軸方向)のうちのZs軸方向は、スレーブ上体座標系CsbのZsb軸方向と同方向(上下方向)に設定される。このため、上記式(63)により算出される角速度ω_sb_local_z_actは、スレーブ側グローバル座標系Csで見た実スレーブ上体運動の角速度↑ω_sb_actのうちのZs軸周り方向(ヨー方向)の角速度ω_sb__z_actに一致する。従って、式(33)により、スレーブ側グローバル座標系Csで見た実スレーブ上体運動の角速度↑ω_sb_actのうちのZs軸周り方向(ヨー方向)の角速度ωsb_z_actが求められる。
そして、スレーブ移動制御部42は、さらに、上記の如く求めた角速度ω_sb_z_actを積分する処理によって、スレーブ側グローバル座標系Csで見た実スレーブ上体運動の姿勢角↑θ_sb_actのうちのZs軸周り方向の姿勢角θ_sb_z_act(換言すれば、スレーブ上体の向き)を算出する。
なお、本実施形態では、実スレーブ上体運動の角速度↑ω_sb_actのうち、スレーブ側グローバル座標系CsのXs軸周り方向の角速度と、Ys軸周り方向の角速度との算出(換言すれば、上下方向に直交する方向(横方向)の軸周りの角速度の算出)は省略される。このことは、実スレーブ上体運動の姿勢角↑θ_sb_actについても同様である。
さらに、スレーブ移動制御部42は、前記式(32a),(32b)により求めたV_sb_local_x_act,V_sb_local_y_actを2成分とするベクトル(スレーブ上体座標系CsbのXsbYsb座標平面上での2次元ベクトル)を、上記の如く求めたZs軸周り方向の姿勢角θ_sb_z_actに一致する角度だけ、Zs軸周り方向に回転変換することによって。スレーブ側グローバル座標系Csで見た実スレーブ上体運動の並進速度↑V_sb_actのうちのZs軸方向以外の成分(スレーブ側グローバル座標系CsのXs軸方向の並進速度V_sb_x_act及びYs軸方向の並進速度V_sb_y_act)を求める。
そして、スレーブ移動制御部42は、これらの並進速度V_sb_x_ac,V_sb_y_actを積分することによって、実スレーブ上体運動の位置↑P_sb_actのうちのXs軸方向の位置P_sb_x_actと、Ys軸方向の位置P_sb_y_actとを求める。
また、スレーブ移動制御部42は、STEP10で取得した実スレーブスライド変位(観測値)から、実スレーブ上体運動の位置↑P_sb_actのうちのZs軸方向の位置P_sb_z_actを求め、さらにP_sb_z_actの時間的変化率を求める微分処理によって、実スレーブ上体運動の並進速度↑V_sb_actのうちのZs軸方向の並進速度V_sb_z_actを求める。
本実施形態では、以上説明したSTEP11の処理によって、実スレーブ上体運動(位置↑P_sb_act,並進速度↑V_sb_act,姿勢角↑θ_sb_act、角速度↑ω_sb_act)が求められる。補足すると、実スレーブ上体運動のうちの位置↑P_sb_act及び姿勢角↑θ_sb_actは、積分誤差の蓄積を防止するために、スレーブ装置1の周囲のランドマーク等の環境認識情報に基づいて、随時補正してもよい。
次いで、STEP12において、スレーブ移動制御部42は、目標スレーブ上体運動に応じて、スレーブ移動機構2の各移動接地部4の目標並進速度を決定し、その目標並進速度を実現するように、各移動接地部4に対応する電動モータ5a,5bを制御する。
具体的には、スレーブ移動制御部42は、STEP10で取得した目標スレーブ上体並進速度↑V_sb_aimのうちのXs軸方向の並進速度V_sb_x_aim及びYs軸方向の並進速度V_sb_y_aimから成るベクトル(スレーブ側グローバル座標系CsのXsYs座標平面上の2次元ベクトル)を、STEP10で取得した目標スレーブ上体姿勢角↑θ_sb_aimのZs軸周り方向の成分θ_sb_z_aimの(−1)倍の角度(=−θ_sb_z_aim)だけ、Zs軸周り方向に回転変換することにより、スレーブ上体座標系CsbのXsb軸方向におけるスレーブ上体の目標並進速度V_sb_local_x_aimと、スレーブ上体座標系CsbのYsb軸方向におけるスレーブ上体の目標並進速度V_sb_local_y_aimとを求める。
そして、スレーブ移動制御部42は、スレーブ上体座標系Csbでの上記目標並進速度V_sb_local_x_aim,V_sb_local_y_aimと、スレーブ側グローバル座標系Csで見た目標スレーブ上体角速度↑ω_sb_aimのうちのZs軸周り方向の成分ω_sb_z_aimとを実現するように、次式(34a),(34b)により、スレーブ上体座標系Csbで見た各移動接地部4(n)(n=1,2,3,4)のXsb軸方向の目標並進速度V_sw_local_x_aim(n)とYsb軸方向の目標並進速度V_sw_local_y_aim(n)とを決定する。
V_sw_local_x_aim(n)=V_sb_local_x_aim−Lswy(n)*ω_sb_z_aim ……(34a)
V_sw_local_y_aim(n)=V_sb_local_y_aim+Lswx(n)*ω_sb_z_aim ……(34b)
さらに、スレーブ移動制御部42は、各移動接地部4(n)毎に、上記目標並進速度V_sw_local_x_aim(n),V_sw_local_y_aim(n)を実現するための電動モータ5a,5bのそれぞれの回転速度の目標値である目標モータ回転速度ω_sw_mota_aim(n),ω_sw_motb_aim(n)を、前記式(31a),(31b)から得られる次式(35a),(35b)により算出する。
ω_sw_mota_aim(n)
=(Cswy*V_sw_local_x_aim(n)+Cswx*V_sw_local_y_aim(n))/(2*Cswx*Cswy)
……(35a)
ω_sw_motb_aim(n)
=(Cswy*V_sw_local_x_aim(n)−Cswx*V_sw_local_y_aim(n))/(2*Cswx*Cswy)
……(35b)
次いで、スレーブ移動制御部42は、各移動接地部4(n)毎に、電動モータ5a,5bのそれぞれの実モータ回転速度ω_sw_mota_act(n),ω_sw_motb_act(n)を、目標モータ回転速度ω_sw_mota_aim (n),ω_sw_motb_aim(n)に追従させるための電動モータ5a,5bのそれぞれの駆動力(回転駆動力)の目標値である目標モータ駆動力Tq_sw_mota_aim(n),Tq_sw_motb_aim(n)を次式(36a),(36b)により決定する。これらの目標モータ駆動力Tq_sw_mota_aim(n),Tq_sw_motb_aim(n)(n=1,2,3,4)が、図2に示す目標スレーブ移動駆動力である。
Tq_sw_mota_aim(n)
=Kv_sw_mota*(ω_sw_mota_aim(n)−ω_sw_mota_act(n)) ……(36a)
Tq_sw_motb_aim (n)
=Kv_sw_motb*(ω_sw_motb_aim(n)−ω_sw_motb_act(n)) ……(36b)
なお、Kv_sw_mota、Kv_sw_motbは、所定値のゲインである。補足すると、式(36a),(36b)は、Tq_sw_mota_aim(n),Tq_sw_motb_aim(n)を、フィードバック制御則の一例としての比例則により決定する式であるが、他のフィードバック制御則(例えば、比例・微分則等)によりTq_sw_mota_aim(n),Tq_sw_motb_aim(n)を決定してもよい。
次いで、スレーブ移動制御部42は、各移動接地部4(n)に対応する電動モータ5a,5bのそれぞれを、上記の如く決定した目標モータ駆動力Tq_sw_mota_aim(n),Tq_sw_motb_aim(n)を出力させるように作動させる。これにより、目標スレーブ上体並進速度↑V_sb_aimのうちのX軸方向の並進速度V_sb_x_aim及びY軸方向の並進速度V_sb_y_aimが実現されるように、スレーブ移動機構2の移動制御が行われる。
本実施形態では、以上説明したSTEP12の処理によって、スレーブ移動機構2の目標スレーブ移動駆動力として、各移動接地部4(n)に対応する電動モータ5a,5bの目標モータ駆動力Tq_sw_mota_aim(n),Tq_sw_motb_aim(n)が、目標スレーブ上体並進速度↑V_sb_aimのうちのZs軸方向(上下方向)の並進速度以外の運動を実現し得るように決定される。そして、この目標モータ駆動力Tq_sw_mota_aim (n),Tq_sw_motb_aim(n)を発生するように各移動接地部4(n)に対応する電動モータ5a,5bが制御される。これにより、目標スレーブ上体並進速度↑V_sb_aimのうちのZs軸方向(上下方向)の並進速度以外の運動を実現するようにスレーブ移動機構2の移動制御が行われる。
次いで、STEP13において、スレーブ移動制御部42は、目標スレーブ上体並進速度↑V_sb_aimのうちのZs軸方向(上下方向)の並進速度V_sb_z_aimを実現するように、スレーブスライドアクチュエータ36を制御する。
具体的には、スレーブ移動制御部42は、STEP10で取得した目標スレーブ上体並進速度↑V_sb_aimのうちのZs軸方向の並進速度V_sb_z_aimと、STEP12で求めた実スレーブ上体運動の並進速度↑V_sb_actのうちのZs軸方向の並進速度Vsb_z_actとの偏差に応じて、比例則、あるいは、比例・微分則等のフィードバック制御則により、スライドアクチュエータ36の目標駆動力を決定する。
これにより、上記偏差をゼロに近づけるようにスライドアクチュエータ36の目標駆動力が決定される。そして、スレーブ移動制御部42は、この目標駆動力を発生させるようにスライドアクチュエータ36を制御する。
次いで、STEP14において、スレーブ移動制御部42は、STEP10で取得した実スレーブ上体反力(↑F_sb_local_act,↑M_sb_local_act)及び実スレーブ床形状(実スレーブ床傾斜角)と、STEP12で求めた実スレーブ上体運動(↑V_sb_act,↑P_sb_act,↑ω_sb_act,↑θ_sb_act)とをメイン操縦制御部94に出力(送信)する。スレーブ移動制御部42の処理は以上の如く実行される。
補足すると、STEP14でメイン操縦制御部94に出力される実スレーブ上体反力(↑F_sb_local_act,↑M_sb_local_act)は、スレーブ上体座標系Csbで見た実スレーブ上体反力であるので、メイン操縦制御部94では、スレーブ移動制御部42から入力された実スレーブ上体反力を、これと共にスレーブ移動制御部42から入力された実スレーブ上体運動の位置↑P_sb_act及び姿勢角↑θ_sb_actを用いて、スレーブ側グローバル座標系で見た実スレーブ上体反力(↑F_sb_act,↑M_sb_act)に変換する。そして、その変換後の実スレーブ上体反力を用いて前記した処理を実行する。
ただし、スレーブ上体座標系Csbで見た実スレーブ上体反力を、スレーブ側グローバル座標系Csで見た実スレーブ上体反力に変換することを、スレーブ移動制御部42で実行するようにしてもよい。この場合には、メイン操縦制御部94での当該変換の処理は不要である。
[マスター移動制御部の制御処理]
次に、マスター制御装置91のマスター移動制御部92の制御処理を図10を参照して説明する。マスター移動制御部92は、図10のフローチャートに示す処理を所定の制御処理周期で逐次実行する。
STEP20において、マスター移動制御部92は、目標上体支持部運動を取得する。具体的には、マスター移動制御部92は、目標上体支持部運動の構成要素としてメイン操縦制御部94で決定された目標上体支持部並進加速度↑Acc_mb_aim及び目標上体支持部角加速度↑β_mb_aimをメイン操縦制御部94から取得(受信)する。
STEP20ではさらに、マスター移動制御部92は、マスター上体力検出器64の出力により示される実上体支持部反力と、各マスター移動駆動機構55毎に、モータ回転検出器56の出力により示される電動モータ55a,55bのそれぞれの実マスターモータ回転角検出値と、マスタースライド変位検出器67の出力により示される実マスタースライド変位と、左右の足部架台90L,90Rのそれぞれに対応する架台変位検出器76の出力により示される実架台変位(実架台アクチュエータ変位)と、オペレータPの左右の足部のそれぞれに対応する足部力検出器74の出力により示される実足部接地反力と、基台傾斜検出器59の出力により示される実マスター基台傾斜状態(実基台傾斜アクチュエータ変位)と、オペレータPの左右の足部のそれぞれについてオペレータ足部位置姿勢検出器77の出力により示される実オペレータ足部位置姿勢(実オペレータ足部位置及び実オペレータ足部姿勢角の組)と、スレーブ制御装置41からマスター制御装置91に入力される実スレーブ床形状(実スレーブ床傾斜角)とを取得する。
この場合、STEP20でマスター移動制御部92が取得する実上体支持部反力は、詳しくは、以下に説明するマスター上体座標系Cmbで見た反力(並進力及びモーメント)である。該マスター上体座標系Cmbは、上体支持部65に対して設定されたローカル座標系であり、例えば、図3又は図4に示した如くXmb軸方向、Ymb軸方向、Zmb軸方向を設定した3軸直交座標系Cmである。このマスター上体座標系Cmbの原点は、例えば、前記マスター基準点Qm(上体支持部65の代表点)に設定される(図12Bを参照)。
そして、STEP20でマスター移動制御部92が取得する実上体支持部反力のモーメントは、詳しくは、マスター上体座標系Cmbの原点(マスター基準点Qm)の周りのモーメントである。以降、STEP20で取得される、マスター上体座標系Cmbで見た実上体支持部反力の並進力の参照符号を↑F_mb_local_act、モーメントの参照符号を↑M_mb_local_actと表記する。
上記実上体支持部反力(↑F_mb_local_act,↑M_mb_local_act)は、マスター上体力検出器64に対して設定されたセンサ座標系で見た実上体支持部反力(並進力及びモーメント)の検出値を、マスター上体座標系Cmbで見た実上体支持部反力に変換することで得られる。
また、STEP20でマスター移動制御部92が取得する実オペレータ足部接地反力及び実オペレータ足部位置姿勢も、それぞれマスター上体座標系Cmbで見た接地反力及び位置姿勢である。なお、本実施形態では、STEP20で取得するオペレータ足部接地反力は、マスター上体座標系CmbのZmb軸方向(上下方向)の並進力だけでもよい。また、実オペレータ足部位置姿勢のうちの姿勢角は、ヨー方向(Zmb軸周り方向)の姿勢角(実足部向き)だけでもよい。
次いで、STEP21において、マスター移動制御部92は、仮想上体支持部運動と、修正目標上体支持部運動とを決定する。ここで、仮想上体支持部運動は、仮想床上での上体支持部65の運動を、メイン操縦制御部94で前記した如く決定される目標上体支持部運動に従って行ったと仮定した場合に、仮想床に対して仮想的に実現される上体支持部65の運動を意味する。
本実施形態では、仮想床に対する仮想上体支持部運動が目標上体支持部運動に従うようにマスター装置51の動作制御が行われる。このため、マスター移動制御部92は、仮想上体支持部運動が目標上体支持部運動に一致するとみなして該仮想上体支持部運動を決定する。
具体的には、マスター移動制御部92は、図13の処理部92aで示すように、目標上体支持部運動のうちの目標上体支持部角加速度↑β_mb_aimを積分することにより仮想床に対する上体支持部65の角速度の観測値(疑似的な推定値)としての仮想上体支持部角速度↑ω_mb_virを算出する。さらにマスター移動制御部92は、該仮想上体支持部角速度↑ω_mb_virを積分することにより、仮想床に対する上体支持部65の姿勢角の観測値(疑似的な推定値)としての仮想上体支持部姿勢角↑θ_mb_virを算出する。
換言すれば、マスター移動制御部92は、目標上体支持部角加速度↑β_mb_aimを積分してなる目標上体支持部角速度↑ω_mb_aim(上体支持部65の目標角速度)と、該目標上体支持部角速度↑ω_mb_aimを積分してなる目標上体支持部姿勢角↑θ_mb_aim(上体支持部65の目標姿勢角)とをそれぞれ、仮想上体支持部角速度↑ω_mb_vir、仮想上体支持部姿勢角↑θ_mb_virとして決定する。
また、マスター移動制御部92は、図14の処理部92cで示すように、目標上体支持部運動のうちの目標上体支持部並進加速度↑Acc_mb_aimを積分することにより仮想床に対する上体支持部65の並進速度の観測値(疑似的な推定値)としての仮想上体支持部並速度↑V_mb_virを算出する。さらにマスター移動制御部92は、該仮想上体支持部並進速度↑V_mb_virを積分することにより、仮想床に対する上体支持部65の位置の観測値(疑似的な推定値)としての仮想上体支持部位置↑P_mb_virを算出する。
換言すれば、マスター移動制御部92は、目標上体支持部並進加速度↑Acc_mb_aimを積分してなる目標上体支持部並進速度↑V_mb_aim(上体支持部65の目標並進速度)と、該目標上体支持部並進速度↑V_mb_aimを積分してなる目標上体支持部位置↑P_mb_aim(上体支持部65の目標位置)とをそれぞれ、仮想上体支持部並進速度↑V_mb_vir、仮想上体支持部位置↑P_mb_virとして決定する。
STEP21では、上記の如く、仮想上体支持部角速度↑ω_mb_vir、仮想上体支持部姿勢角↑θ_mb_vir、仮想上体支持部並進速度↑V_mb_vir、及び仮想上体支持部位置↑P_mb_virが仮想上体支持部運動の構成要素として求められる。
図15は上記の如く求められる仮想上体支持部姿勢角↑θ_mb_virのうちのヨー方向(仮想床座標系CvirのZvir軸周り方向)の姿勢角θmb_z_virと、仮想上体支持部位置↑P_mb_virのうちのXvir軸方向の位置P_mb_x_vir及びYvir軸方向の位置P_mb_y_virとを例示している。なお、図15ではマスター装置51は、要部構成のみを簡略的に図示している。このことは、後述の図16でも同様である。
図15に示す足部架台70L,70Rは、マスター装置51上でのオペレータPの歩行動作時に、足部架台70L,70RのそれぞれにオペレータPの左右の各足部が接地された状態での該足部架台70L,70Rの位置(仮想床での位置)を例示している。
さらに、一点鎖線で示す経路Rt_virは、オペレータPの歩行動作に応じた仮想上体支持部運動による上体支持部65の代表点(マスター基準点Qm)の移動経路(仮想床座標系CvirのXvirYvir座標平面に投影して見た移動経路)を例示している。
補足すると、STEP21で仮想上体支持部運動を求める処理によって、結果的に、仮想床に対する目標上体支持部運動(仮想床座標系Cvirで見た目標上体支持部運動)の構成要素としての目標上体支持部角速度↑ω_mb_aim(=↑ω_mb_vir)、目標上体支持部姿勢角↑θ_mb_aim(=↑θ_mb_vir)、目標上体支持部並進速度↑V_mb_aim(=↑V_mb_vir)、及び目標上体支持部位置↑P_mb_aim(=↑P_mb_vir)も求められる。
なお、↑ω_mb_vir,↑θ_mb_vir,↑V_mb_vir,↑P_mb_vir(又は↑ω_mb_aim,↑θ_mb_aim、↑V_mb_aim,↑P_mb_aim)を求める処理をメイン操縦制御部94で実行してもよい。そして、マスター移動制御部92は、↑ω_mb_vir,↑θ_mb_vir,↑V_mb_vir,↑P_mb_vir(又は↑ω_mb_aim,↑θ_mb_aim、↑V_mb_aim,↑P_mb_aim)をメイン操縦制御部94から取得してもよい。
STEP21で、マスター移動制御部92が決定する修正目標上体支持部運動は、マスター床に対する上体支持部65の目標運動(マスター側グローバル座標系Cmで見た目標運動)を意味する。ここで、マスター装置51上でオペレータPが歩行動作を行う疑似的な床面としての仮想床がマスター床に対して静止した状態に維持されるように、マスター装置51の動作制御(上体支持部65及び各足部架台70の運動制御)を行うことは可能である。
具体的には、マスター装置51上でのオペレータPの歩行動作時に、該オペレータPの支持脚側の足部を接地させた足部架台70L(又は70R)である支持脚側足部架台70L(又は70R)をマスター床に対して静止させると共に、オペレータPの遊脚側の足部に対応する足部架台70R(又は70L)である遊脚側足部架台70R(又は70L)を該足部の直下の位置に追従させるように(換言すれば、遊脚側足部架台70R(又は70L)の横方向位置をオペレータPの遊脚側の足部の横方向位置に追従させるように)、遊脚側足部架台70R(又は70L)と上体支持部65とを支持脚側足部架台70L(又は70R)に対して相対移動させるようにマスター装置51の動作制御を行うことで、仮想床がマスター床に対して静止した状態に維持されるようにすることが可能である。
以降、このようなマスター装置51の動作制御(仮想床をマスター床に対して固定する動作制御)を厳密仮想床制御と称する。該厳密仮想床制御によるマスター装置51の動作制御を行った場合には、オペレータPは、マスター床上で歩行動作を行うのと同じようにして仮想床上の歩行動作を行うことが可能である。
ただし、マスター床に対するマスター装置51の位置やヨー方向での姿勢角(向き)の可動範囲は、該マスター装置51の動作環境に存在する壁や設置物、あるいは、マスター装置51に接続されるケーブル等に起因する制約を受ける。このため、上記厳密仮想床制御では、オペレータPが、仮想床上での歩行動作によって、スレーブ装置1をスレーブ床上で任意の位置又は任意の方向に移動させようとしても、マスター装置51がその動作環境で移動できなくなるという状況が発生しやすい。ひいては、スレーブ装置1を移動させる操縦を行うことができなくなるという状況が発生しやすい。
例えば図15に示すように、仮想床をマスター床に対して固定した場合(仮想床座標系Cvirをマスター側グローバル座標系Cmに対して固定した場合)には、オペレータPが仮想床上で図示のごとき経路Rt_virでマスター装置51を移動させるように歩行動作を行っても、厳密仮想床制御では、マスター装置51は、当該経路Rt_virのうち、マスター装置51の移動可能領域AR_lim(図15に二点鎖線で示す)から逸脱する部分に移動することはできない。
そこで、本実施形態では、マスター移動制御部92は、マスター装置51の代表点、例えば、前記マスター基準点Qmの位置がマスター装置51の動作環境であらかじめ設定された所定の基準位置から乖離するのを抑制すると共に、上体支持部65のヨー方向の姿勢角(向き)がマスター装置51の動作環境でからかじめ設定されたヨー方向の所定の基準姿勢角(基準向き)から乖離するのを抑制するように、マスター床に対する上体支持部65の目標運動としての修正目標上体支持部運動を決定する。
なお、本実施形態では、マスター基準点Qmの位置は、前記の如く設定されているので、上体支持部65の位置としての意味を持つ。加えて、マスター基準点Qmの横方向位置は、基台53の横方向位置としての意味も持つ。また、本実施系形態では、マスター装置51の基準位置は、横方向位置(Xm軸方向位置及びYm軸方向位置)と上下方向位置(Zm軸方向位置)とから構成される。
上記修正目標上体支持部運動は、仮想床がマスター床に固定されていると仮定した場合の目標上体支持部運動(これは、厳密仮想床制御での目標上体支持部運動に相当する)を修正することで決定される。この場合、修正目標上体支持部運動の構成要素として、マスター側グローバル座標系Cmで見た上体支持部65の目標姿勢角としての修正目標上体支持部姿勢角↑θ_mb_mdfd_aimと、マスター側グローバル座標系Cmで見た上体支持部65の目標位置としての修正目標上体支持部位置↑P_mb_mdfd_aimとが決定される。
修正目標上体支持部姿勢角↑θ_mb_mdfd_aimは、図13の処理部92bで示される処理によって決定される。なお、以降の説明では、理解の便宜上、マスター装置51上でのオペレータPの歩行動作の開始時(スレーブ装置1の操縦開始時)におけるマスター側グローバル座標系Cmの原点、Xm軸方向、Ym軸方向及びZm軸方向のそれぞれと、仮想床座標系Cvirの原点、Xvir軸方向、Yvir軸方向及びZvir軸方向のそれぞれとは互いに一致するように設定されているものとする。
処理部92bの処理では、マスター移動制御部92は、STEP20で取得した目標上体支持部角加速度↑β_mb_aim(仮想床座標系Cvirで見た目標上体支持部角加速度↑β_mb_aim)のうちのヨー方向成分(仮想床座標系CvirのZvir軸周り方向の成分)である角加速度β_mb_z_aimを抽出する。
そして、マスター移動制御部92は、この角加速度β_mb_z_aimを積分してなる角速度としての無修正角速度ω_mb_z_virを求め、さらに、この無修正角速度ω_mb_z_virを積分してなる姿勢角としての無修正姿勢角θ_mb_z_virを求める。無修正角速度ω_mb_z_vir及び無修正姿勢角θ_mb_z_virは、換言すれば、仮想床をマスター床に固定させた状態で目標上体支持部運動により規定される上体支持部65のヨー方向の角速度(マスター側グローバル座標系Cmで見た角速度)及び姿勢角(マスター側グローバル座標系Cmで見た姿勢角)である。
補足すると、無修正角速度ω_mb_z_vir及び無修正姿勢角θ_mb_z_virは、それぞれ、前記処理部92aで算出される仮想上体支持部角速度↑ω_mb_vir及び仮想上体支持部姿勢角↑θ_mb_virのそれぞれのヨー方向(Zvir軸周り方向)の成分に一致する。従って、↑ω_mb_vir、↑θ_mb_virのそれぞれのヨー方向成分を、無修正角速度ω_mb_z_vir、無修正姿勢角θ_mb_z_virとして抽出してもよい。
また、マスター移動制御部92は、目標上体支持部角加速度↑β_mb_aimから抽出したヨー方向の角加速度β_mb_z_aimをフィードバック補正量β_mb_z_fbにより修正してなる修正角加速度(=β_mb_z_aim+β_mb_z_fb)を求める。そして、マスター移動制御部92は、該修正角加速度を積分してなる角速度としての修正角速度ω_mb_z_mdfdを求め、さらに、この修正角速度ω_mb_z_mdfdを積分してなる姿勢角(ヨー方向での向き)としての修正姿勢角θ_mb_z_mdfdを求める。
この場合、上記フィードバック補正量β_mb_z_fbは、上記修正角速度ω_mb_z_mdfd及び修正姿勢角θ_mb_z_mdfdのそれぞれの最新値と、マスター側グローバル座標系Cmで見た上体支持部65のヨー方向の基準姿勢角θ0_mb_zとを用いて、次式(41)の演算処理により算出される。
β_mb_z_fb
=−Kthfb*(θ_mb_z_mdfd−θ0_mb_z)−Komfb*ω_mb_z_mdfd ……(41)
なお、式(41)における係数Kthfb,Komfbは、所定値のゲインである。該係数Kthfb,Komfbの値は、フィードバック補正量β_mb_z_fbの絶対値が比較的小さな値に収まるように設定される。
従って、フィードバック補正量β_mb_z_fbは、修正姿勢角θ_mb_z_mdfdを基準姿勢角θ0_mb_zに徐々に収束させていくように決定される。なお、式(41)によりフィードバック補正量β_mb_z_fbを求める処理は、比例・微分則によりβ_mb_z_fbを求める処理であるが、他のフィードバック制御則(比例則等)を用いてβ_mb_z_fbを求めてもよい。
マスター移動制御部92は、さらに、上記の如く求めた修正姿勢角θ_mb_z_mdfdと無修正姿勢角θ_mb_z_virとの差(=θ_mb_z_mdfd−θ_mb_z_vir)を、上体支持部65のヨー方向の姿勢角修正量θmb_z_addとして求める。そして、マスター移動制御部92は、該姿勢角修正量θmb_z_addを、前記処理部92aの処理により決定した仮想上体支持部姿勢角↑θ_mb_vir(又は目標上体支持部姿勢角↑θ_mb_aim)のZvir軸周り方向の成分(ヨー方向成分)に加算することにより、マスター側グローバル座標系Cmで見た修正目標上体支持部姿勢角↑θ_mb_mdfd_aimを求める。
従って、修正目標上体支持部姿勢角↑θ_mb_mdfd_aimは、処理部92aの処理により決定した仮想上体支持部姿勢角↑θ_mb_vir(又は目標上体支持部姿勢角↑θ_mb_aim)のヨー方向成分を、修正姿勢角θ_mb_z_mdfdに置き換えたものとして決定される。
なお、修正目標上体支持部姿勢角↑θ_mb_mdfd_aimの代わりに、あるいは、修正目標上体支持部姿勢角↑θ_mb_mdfd_aimに加えて、マスター床に対する上体支持部65の目標角速度としての修正目標上体支持部角速度↑ω_mb_mdfd_aimを求めてもよい。該修正目標上体支持部角速度↑ω_mb_mdfd_aimは、例えば、処理部92aの処理により決定した仮想上体支持部角速度↑ω_mb_vir(又は目標上体支持部角速度↑ω_mb_aim)のヨー方向成分を、前記修正角速度ω_mb_z_mdfdに置き換えたものとして決定され得る。
また、修正目標上体支持部位置↑P_mb_mdfd_aimは、図14の処理部92dで示される処理によって決定される。この処理部92dの処理では、マスター移動制御部92は、まず、STEP20で取得した目標上体支持部並進加速度↑Acc_mb_aim(仮想床座標系Cvirで見た目標上体支持部並進加速度↑Acc_mb_aim)を、前記した如く求めた姿勢角修正量θmb_z_addだけ、ヨー方向(Zvir軸周りの方向)に回転させる回転変換を行うことで回転変換並進加速度↑Acc_mb_aを求める。
従って、該回転変換並進加速度↑Acc_mb_aは、前記姿勢角修正量θmb_z_addによるヨー方向の姿勢角の修正後の上体支持部65に対する回転変換並進加速度↑Acc_mb_aの向き(ヨー方向での向き)を、目標上体支持部並進加速度↑Acc_mb_aimで想定されている向き(詳しくは、仮想上体支持部姿勢角↑θ_mb_virの姿勢角を有する上体支持部65に対する目標上体支持部並進加速度↑Acc_mb_aimの向き(ヨー方向での向き))に一致させ得る並進加速度である。
次いで、マスター移動制御部92は、上記回転変換並進加速度↑Acc_mb_aをフィードバック補正量↑Acc_mb_fbにより修正してなる修正並進加速度(=↑Acc_mb_a+↑Acc_mb_fb)を求める。そして、マスター移動制御部92は、該修正並進加速度を積分してなる並進速度としての修正目標上体支持部並進速度↑V_mb_mdfd_aim(上体支持部65の修正後の目標並進速度)を求め、さらに、この修正目標上体支持部並進速度↑V_mb_mdfd_aimを積分してなる位置としての修正目標上体支持部位置↑P_mb_mdfd_aim(上体支持部65の修正後の目標位置)を求める。これらの修正目標上体支持部並進速度↑V_mb_mdfd_aim及び修正目標上体支持部位置↑P_mb_mdfd_aimは、それぞれ、マスター側グローバル座標系Cmで見た並進速度、位置である。
この場合、上記フィードバック補正量↑Acc_mb_fbは、上記修正目標上体支持部並進速度↑V_mb_mdfd_aim及び修正目標上体支持部位置↑P_mb_mdfd_aimのそれぞれの最新値と、マスター側グローバル座標系Cmで見た上体支持部65の基準位置↑P0とを用いて、次式(42)の演算処理により算出される。
↑Acc_mb_fb
=−Kpfb*(↑P_mb_mdfd_aim−↑P0)−Kvfb*↑V_mb_mdfd_aim ……(42)
なお、式(42)における係数Kpfb,Kvfbは、所定値のゲイン(スカラー又は対角行列)である。該係数Kpfb,Kvfbの値は、フィードバック補正量↑Acc_mb_fbの絶対値が比較小さな値に収まるように設定される。
従って、フィードバック補正量↑Acc_fbは、修正目標上体支持部位置↑P_mb_mdfd_aimを基準位置↑P0aに徐々に収束させていくように決定される。なお、式(42)によりフィードバック補正量↑Acc_mb_fbを求める処理は、比例・微分則により↑Acc_mb_fbを求める処理であるが、他のフィードバック制御則(比例則等)を用いて↑Acc_mb_fbを求めてもよい。
STEP21の処理は以上説明した如く実行される。
図16は、STEP21の処理により上記の如く求められる修正目標上体支持部姿勢角↑θ_mb_mdfd_aimのうちのヨー方向(マスターグローバル座標系CmのZm軸周り方向)の姿勢角θmb_z_mdfd_aimと、修正目標上体支持部位置↑P_mb_mdfd_aimのうちのマスターグローバル座標系CmのXm軸方向の位置P_mb_x_mdfd_aim及びYm軸方向の位置P_mb_y_mdfd_aimとを、実線で示すマスター装置51に関して例示している。
また、仮想床がマスター床に対して固定されていると仮定した場合にマスター側グローバル座標系Cmで見た目標上体支持部運動(↑Acc_mb_aim,↑β_mb_aim)により規定される仮想上体支持部位置↑P_mb_virのうちのXm軸方向の位置P_mb_x_vir及びYm軸方向の位置Pの_mb_y_virと、仮想上体支持部姿勢角↑θ_mb_virのうちのヨー方向(Zm軸周り方向)の姿勢角θ_mb_z_virとを、二点鎖線で示すマスター装置51に関して例示している。
そして、図16に示したP_mb_x_add及びP_mb_y_addのそれぞれは、マスター側グローバル座標系Cmで見た仮想上体支持部位置↑P_mb_virから修正目標上体支持部位置↑P_mb_mdfd_aimへの修正量のうちのXm軸方向の修正量と、Ym軸方向の修正量とを例示している。また、図16に示したθmb_z_addは、前記処理部92bの処理で求められるヨー方向の姿勢角修正量θmb_z_addを例示している。
また、図16に示した例では、マスター側グローバル座標系Cmの原点の位置が上体支持部65の代表点(マスター基準点Qm)の基準位置↑P0_mbであり、マスター側グローバル座標系CmのXm軸方向がヨー方向での上体支持部65の基準向きθ0_mb_zである。
本実施形態では、修正目標上体支持部運動が上記の如く決定されるので、図16に例示する如く、仮想床に固定された座標系としての仮想床座標系Cvirは、該仮想床座標系Cvirで見た上体支持部65の位置及び向き(ヨー方向の姿勢角)がそれぞれ基準位置及び基準向きから乖離するのが抑制されるように、マスター床に対して動く(マスター側グローバル座標系Cmに対して動く)ものとなる。
なお、図16に二点鎖線で示すマスター装置51に付記した座標系Cmb_virと、図16に実線で示すマスター装置51に付記した座標系Cmb_mdfdとは、それぞれに対応するマスター装置51の上体支持部65の位置姿勢を表す座標系としてのマスター上体座標系Cmbに相当するものである。
図10の説明に戻って、次に、STEP22において、マスター移動制御部92は、STEP20で取得した実マスターモータ回転角(観測値)と実マスタースライド変位(観測値)とを用いて、マスター側グローバル座標系Cmで見た上体支持部65の実際の運動としての実上体支持部運動を求める。このSTEP23の処理は、スレーブ移動制御部42に関するSTEP11の処理と同様に行われる。
この場合、STEP11の処理に関する前記の説明における「スレーブ」、「スレーブ上体」、「スレーブ装置1」、「スレーブ移動制御部42」、「基台3」、「移動接地部4」、「移動駆動機構5」、「電動モータ5a,5b」、「図12A」、「STEP10」を、それぞれ、「マスター」、「上体支持部」(又は「上体支持部65」)、「マスター装置51」、「マスター移動制御部92」、「基台53」、「移動接地部54」、「移動駆動機構55」、「電動モータ55a,55b」、「図12B」、「STEP20」に読み替えると共に、参照符号の「s」を「m」に置き換えることで、STEP23の説明がなされる。
本実施形態では、かかるSTEP22の処理によって、実上体支持部運動(位置↑P_mb_act,並進速度↑V_mb_act,姿勢角↑θ_mb_act、角速度↑ω_mb_act)が求められる。なお、本実施形態では、実上体支持部運動の角速度↑ω_mb_actのうち、マスター側グローバル座標系CmのXm軸周り方向の角速度と、Ym軸周り方向の角速度との算出(換言すれば、上下方向に直交する方向(横方向)の軸周りの角速度の算出)は省略される。このことは、実上体支持部運動の姿勢角↑θ_mb_actについても同様である。
補足すると、実上体支持部運動のうちの位置↑P_mb_act及び姿勢角↑θ_mb_actは、積分誤差の蓄積を防止するために、マスター装置51の周囲のランドマーク等の環境認識情報に基づいて、随時補正してもよい。
次いで、STEP23において、マスター移動制御部92は、修正目標上体支持部運動に応じて、マスター移動機構52の各移動接地部54の目標並進速度を決定し、その目標並進速度を実現するように、各移動接地部54に対応する電動モータ55a,55bを制御する。このSTEP23の処理は、スレーブ移動制御部42に関するSTEP12の処理と同様に行われる。
具体的には、マスター移動制御部92は、STEP21で求めた修正目標上体支持部並進速度↑V_mb_mdfd_aimのうちのXm軸方向の並進速度V_mb_x_mdfd_aim及びYm軸方向の並進速度V_mb_y_mdfd_aimから成るベクトル(マスター側グローバル座標系CmのXmYm座標平面上の2次元ベクトル)を、STEP21で求めた修正目標上体支持部姿勢角↑θ_mb__mdfd_aimのZm軸周り方向(ヨー方向)の成分θ_mb_z_mdfd_aimの(−1)倍の角度(=−θ_mb_z_mdfd_aim)だけ、Zm軸周り方向(ヨー方向)に回転変換することにより、マスター上体座標系CmbのXmb軸方向における上体支持部65の目標並進速度V_mb_local_x_aimと、マスター上体座標系CmbのYmb軸方向における上体支持部65の目標並進速度V_mb_local_y_aimとを求める。
そして、マスター移動制御部92は、マスター上体座標系Cmbでの上記目標並進速度V_mb_local_x_aim,V_mb_local_y_aimと、マスター側グローバル座標系Cmで見た修正目標上体支持部角速度↑ω_mb_mdfd_aimのうちのZm軸周り方向の成分ω_mb_z_mdfd_aimとを実現するように、次式(44a),(44b)により、マスター上体座標系Cmbで見た各移動接地部54(n)(n=1,2,3,4)のXmb軸方向の目標並進速度V_mw_local_x_aim(n)とYmb軸方向の目標並進速度V_mw_local_y_aim(n)とを決定する。
なお、修正目標上体支持部角速度↑ω_mb_mdfd_aimは、例えばSTEP21で求められた修正目標上体支持部姿勢角↑θ_mb_mdfd_aimを微分する処理により求められる。あるいは、例えば、STEP21での処理において、前記処理部92aの処理により決定した仮想上体支持部角速度↑ω_mb_vir(又は目標上体支持部角速度↑ω_mb_aim)のヨー方向成分を、前記処理部92bで求められる修正角速度ω_mb_z_mdfdに置き換えることによって、修正目標上体支持部角速度↑ω_mb_mdfd_aimを求めてもよい。
V_mw_local_x_aim(n)=V_mb_local_x_aim−Lmwy(n)*ω_mb_z_mdfd_aim ……(44a)
V_mw_local_y_aim(n)=V_mb_local_y_aim+Lmwx(n)*ω_mb_z_mdfd_aim ……(44b)
さらに、マスター移動制御部92は、各移動接地部54(n)毎に、上記目標並進速度V_mw_local_x_aim(n),V_mw_local_y_aim(n)を実現するための電動モータ55a,55bのそれぞれの回転速度の目標値である目標モータ回転速度ω_mw_mota_aim(n),ω_mw_motb_aim(n)を、次式(45a),(45b)により算出する。
ω_mw_mota_aim(n)
=(Cmwy*V_mw_local_x_aim(n)+Cmwx*V_mw_local_y_aim(n))/(2*Cmwx*Cmwy)
……(45a)
ω_mw_motb_aim(n)
=(Cmwy*V_mw_local_x_aim(n)−Cmwx*V_mw_local_y_aim(n))/(2*Cmwx*Cmwy)
……(45b)
次いで、マスター移動制御部92は、各移動接地部54(n)毎に、電動モータ55a,55bのそれぞれの実モータ回転速度ω_mw_mota_act(n),ω_mw_motb_act(n)を、目標モータ回転速度ω_mw_mota_aim(n),ω_mw_motb_aim(n)に追従させるための電動モータ55a,55bのそれぞれの駆動力(回転駆動力)の目標値である目標モータ駆動力Tq_mw_mota_aim(n),Tq_mw_motb_aim(n)を次式(46a),(46b)により決定する。これらの目標モータ駆動力Tq_mw_mota_aim(n),Tq_mw_motb_aim(n)(n=1,2,3,4)が、図5に示す目標マスター移動駆動力である。
Tq_mw_mota_aim(n)
=Kv_mw_mota*(ω_mw_mota_aim(n)−ω_mw_mota_act(n)) ……(46a)
Tq_sw_motb_aim (n)
=Kv_mw_motb*(ω_mw_motb_aim(n)−ω_mw_motb_act(n)) ……(46b)
なお、Kv_mw_mota、Kv_mw_motbは、所定値のゲインである。補足すると、式(46a),(46b)は、Tq_mw_mota_aim(n),Tq_mw_motb_aim(n)を、フィードバック制御則の一例としての比例則により決定する式であるが、他のフィードバック制御則(例えば、比例・微分則等)によりTq_mw_mota_aim(n),Tq_mw_motb_aim(n)を決定してもよい。
次いで、マスター移動制御部92は、各移動接地部54(n)に対応する電動モータ55a,55bのそれぞれを、上記の如く決定した目標モータ駆動力Tq_mw_mota_aim(n),Tq_mw_motb_aim(n)を出力させるように作動させる。これにより、修正目標上体支持部並進速度↑V_mb_mdfd_aimのうちのX軸方向の並進速度V_mb_x_mdfd_aim及びY軸方向の並進速度V_mb_y_mdfd_aimが実現されるように、マスター移動機構52の移動制御が行われる。
本実施形態では、以上説明したSTEP23の処理によって、マスター移動機構52の目標マスター移動駆動力として、各移動接地部54(n)に対応する電動モータ55a,55bの目標モータ駆動力Tq_mw_mota_aim(n),Tq_mw_motb_aim(n)が、修正目標上体支持部並進速度↑V_mb_mdfd_aimのうちのZm軸方向(上下方向)の並進速度以外の運動を実現し得るように決定される。そして、この目標モータ駆動力Tq_mw_mota_aim (n),Tq_mw_motb_aim(n)を発生するように各移動接地部54(n)に対応する電動モータ55a,55bが制御される。これにより、修正目標上体支持部並進速度↑V_mb_mdfd_aimのうちのZm軸方向(上下方向)の並進速度以外の運動を実現するようにマスター移動機構52の移動制御が行われる。
次いで、STEP24において、マスター移動制御部92は、修正目標上体支持部並進速度↑V_mb_mdfd_aimのうちのZm軸方向(上下方向)の並進速度V_mb_z_mdfd_aimを実現するように、マスタースライドアクチュエータ66を制御する。
具体的には、マスター移動制御部92は、スレーブ移動制御部42に関するSTEP13の処理と同様に、修正目標上体支持部並進速度↑V_mb_mdfd_aimのZm軸方向の成分V_mb_z_mdfd_aimと、STEP23で求めた実上体支持部運動の並進速度↑V_mb_actのZm軸方向の並進速度Vmb_z_actとの偏差に応じて、該偏差をゼロに近づけるようにスライドアクチュエータ66の目標駆動力を決定する。そして、マスター移動制御部92は、この目標駆動力を発生させるようにスライドアクチュエータ66を制御する。
次いで、STEP25において、マスター移動制御部92は、各足部架台70の動作制御である足部架台制御の処理を実行する。この制御処理は図11のフローチャートに示す如く実行される。
STEP25−1において、マスター移動制御部92は、前記STEP20で取得したオペレータPの左右の各足部の実オペレータ足部位置姿勢に応じて、仮想床に対するオペレータPの各足部の位置及び姿勢角の組である仮想オペレータ足部位置姿勢を求める。この場合、STEP20で取得したオペレータPの左右の各足部の実オペレータ足部位置姿勢(マスター上体座標系Cmbで見た位置姿勢)を、STEP21で求めた仮想上体支持部位置↑P_mb_virと仮想上体支持部姿勢角↑θ_mb_virとを用いて仮想床座標系Cvirで見た位置姿勢に座標変換することで、仮想オペレータ足部位置姿勢が求められる。
以降、オペレータPの左側の足部に関する仮想オペレータ足部位置姿勢のうちの位置と姿勢角とをそれぞれ、仮想オペレータ左足部位置↑P_mp_L_vir、仮想オペレータ左足部姿勢角↑θ_mp_L_virと表記し、オペレータPの右側の足部に関する仮想オペレータ足部位置姿勢のうちの位置と姿勢角とをそれぞれ、仮想オペレータ右足部位置↑P_mp_R_vir、仮想オペレータ右足部姿勢角↑θ_mp_R_virと表記する。また、仮想上体支持部位置↑P_mb_virと仮想上体支持部姿勢角↑θ_mb_virとの組を仮想上体支持部位置姿勢と称する。
次いで、STEP25−2において、マスター移動制御部92は、オペレータPの左側の足部が左側の足部架台70Lに接地しているか否か(換言すれば、左側の足部が支持脚側の足部であるか否か)を判断する。この判断は、左側の足部に対応して前記STEP20で取得された実オペレータ足部接地反力(観測値)のうちの上下方向(Zmb軸方向)の並進力の大きさが所定値を超えているか否かによりなされる。
STEP25−2の判断結果が否定的である場合(オペレータPの左側の足部が遊脚側の足部である場合)には、マスター移動制御部92は、STEP25−3において、左側の足部架台95Lの目標位置及び目標姿勢角(仮想床座標系Cvirで見た目標位置及び目標姿勢角)の組である目標左足部架台位置姿勢を求める。以降、目標左足部架台位置姿勢のうちの目標位置と目標姿勢角とをそれぞれ、目標左足部架台位置↑P_mp_L_aim、目標左足部架台姿勢角↑θ_mp_L_aimと表記する。
目標左足部架台位置↑P_mp_L_aimのうちの横方向位置(Xvir軸方向の位置P_mp_L_x_aim及びYvir軸方向の位置P_mp_L_y_aim)は、仮想オペレータ左足部位置↑P_mp_L_virのうちの横方向位置(Xvir軸方向の位置P_mp_L_x_vir及びYvir軸方向の位置P_mp_L_y_vir)に一致するように設定される。また、目標左足部架台姿勢角↑θ_mp_L_aimのうちのZvir軸周り方向(ヨー方向)の姿勢角θ_mp_L_z_aimは、仮想オペレータ左足部姿勢角↑θ_mp_L_virのZvir軸周り方向の姿勢角θ_mp_L_z_virに一致するように設定される。
また、目標左足部架台位置↑P_mp_L_aimのうちの上下方向の位置(Zvir軸方向の位置P_mp_L_z_aim)と、目標左足部架台姿勢角↑θ_mp_L_aimのうちの横方向の軸周り方向の姿勢角(Xvir軸周り方向の姿勢角θ_mp_L_x_vir及びYvir軸周り方向の姿勢角θ_mp_L_y_vir)とは、例えば、前記STEP20で取得した実スレーブ床形状(実スレーブ床傾斜角)に応じて決定される。
具体的には、例えば、実スレーブ床傾斜角に応じて仮想床面の傾斜角が設定される。この場合、マスター上体座標系Cmbで見た仮想床面のロール方向(Xmb軸周り方向)の傾斜角と、ピッチ方向(Ymb軸周り方向)の傾斜角とが、それぞれ、スレーブ上体座標系Csbで見た実スレーブ床傾斜角のうちのロール方向(Xsb軸周り方向)の傾斜角と、ピッチ方向(Ysb軸周り方向)の傾斜角とに一致するように仮想床の傾斜角が設定される。
そして、左側の足部架台70Lの上面(オペレータPの左側の足部を接地させようとする面)が、STEP25−2の判断結果が肯定的から否定的に変化した時点の直前の位置から、上記の如く傾斜角を設定した仮想床面に沿って移動するように、目標左足部架台位置↑P_mp_L_aimの上下方向(Zvir軸方向)の位置P_mp_L_z_aimと、目標左足部架台姿勢角↑θ_mp_L_aimのXvir軸周り方向の姿勢角θ_mp_L_x_vir及びYvir軸周り方向の姿勢角θ_mp_L_y_virとが設定される。
この場合、P_mp_L_z_aim、θ_mp_L_x_vir、θ_mp_L_y_virは、STEP25−2の判断結果が肯定的から否定的に変化した時点の直前における目標左足部架台位置姿勢と、仮想床面の傾斜角と、STEP25−3で前記した如く決定した目標左足部架台位置↑P_mp_L_aimのXvir軸方向の位置P_mp_L_x_aim及びYvir軸方向の位置P_mp_L_y_aimと、STEP25−3で前記した如く決定した目標左足部架台姿勢角↑θ_mp_L_aimのZvir軸周り方向(ヨー方向)の姿勢角θ_mp_L_z_aimとを用いて算出される。
また、STEP25−2の判断結果が肯定的である場合には、マスター移動制御部92は、STEP25−3の処理を実行せずに、目標左足部架台位置姿勢をSTEP25−2の判断結果が否定的から肯定的に変化した時点の直前の値に維持する。
次いで、STEP25−4において、マスター移動制御部92は、オペレータPの右側の足部が右側の足部架台70Rに接地しているか否か(換言すれば、右側の足部が支持脚側の足部であるか否か)を判断する。この判断は、右側の足部に対応して前記STEP20で取得された実足部接地反力(観測値)のうちの上下方向(Zmb軸方向)の並進力の大きさが所定値を超えているか否かによりなされる。
STEP25−4の判断結果が否定的である場合(オペレータPの右側の足部が遊脚側の足部である場合)には、マスター移動制御部92は、STEP25−5において、右側の足部架台95Lの目標位置及び目標姿勢角(仮想床座標系Cvirで見た目標位置及び目標姿勢角)の組である目標右足部架台位置姿勢を求める。以降、目標右足部架台位置姿勢のうちの目標位置と目標姿勢角とをそれぞれ、目標右足部架台位置↑P_mp_R_aim、目標右足部架台姿勢角↑θ_mp_R_aimと表記する。
これらの目標右足部架台位置↑P_mp_R_aim及び目標右足部架台姿勢角↑θ_mp_R_aimは、左側の足部架台70Lに関するSTEP25−3の処理と同様の処理により決定される。
また、STEP25−4の判断結果が肯定的である場合には、マスター移動制御部92は、STEP25−5の処理を実行せずに、目標右足部架台位置姿勢をSTEP25−4の判断結果が否定的から肯定的に変化した時点の直前の値に維持する。
次いで、STEP25−6において、マスター移動制御部92は、左右の足部架台70L,70Rについての実際の位置姿勢と、上体支持部65の実際の位置姿勢との間の関係(位置関係及び姿勢関係)が、目標足部架台位置姿勢(目標左足部架台位置姿勢及び目標右足部架台位置姿勢)と仮想上体支持部位置姿勢(又は目標上体支持部位置姿勢)との間の関係に一致するように、架台駆動機構71L,71Rのそれぞれの各架台アクチュエータ75を制御する。
具体的には、マスター移動制御部92は、マスター上体座標系Cmbから見た足部架台70L,70Rのそれぞれの位置姿勢(位置及び姿勢角)の目標値としての目標左足部架台ローカル位置姿勢と目標右足部架台ローカル位置姿勢とを、前記STEP21で求めた仮想上体支持部位置姿勢(↑P_mb_vir,↑θ_mb_vir)と、目標左足部架台位置姿勢及び目標右足部架台位置姿勢とから算出する。目標左足部架台ローカル位置姿勢及び目標右足部架台ローカル位置姿勢は、換言すれば、上体支持部65に対する足部架台70L,70Rのそれぞれの相対的な位置姿勢の目標値である。
この場合、目標左足部架台ローカル位置姿勢は、仮想床座標系Cvirで見た目標左足部架台位置姿勢を、仮想上体支持部位置姿勢(↑P_mb_vir,↑θ_mb_vir)により規定されるマスター上体座標系Cmbから見た位置姿勢に座標変換することで求められる。また、目標右足部架台ローカル位置姿勢は、仮想床座標系Cvirで見た目標右足部架台位置姿勢を、仮想上体支持部位置姿勢(↑P_mb_vir,↑θ_mb_vir)により規定されるマスター上体座標系Cmbから見た位置姿勢に座標変換することで求められる。
次いで、マスター移動制御部92は、目標左足部架台ローカル位置姿勢から、左側の架台駆動機構71Lの各架台アクチュエータ75(左側の足部架台70Lをマスター上体座標系Cmbの各座標軸方向に並進駆動する架台アクチュエータ75のそれぞれと各座標軸周りの方向に回転駆動する架台アクチュエータ75のそれぞれ)の出力部の目標変位(目標左足部架台ローカル位置姿勢を実現し得る目標変位)を決定する。
同様に、マスター移動制御部92は、目標右足部架台ローカル位置姿勢から、右側の架台駆動機構71Rの各架台アクチュエータ75(右側の足部架台70Rをマスター上体座標系Cmbの各座標軸方向に並進駆動する架台アクチュエータ75のそれぞれと各座標軸周りの方向に回転駆動する架台アクチュエータ75のそれぞれ)の出力部の目標変位(目標右足部架台ローカル位置姿勢を実現し得る目標変位)を決定する。
次いで、マスター移動制御部92は、左右の各架台駆動機構71の各架台アクチュエータ75の出力部の目標変位と、該架台アクチュエータ75に対応して前記STEP20で取得された実架台アクチュエータ変位(観測値)との偏差に応じて、フィードバック制御則(比例則、比例・微分則等)により該偏差をゼロに近づけるように、該架台アクチュエータ75の目標駆動力を決定する。そして、マスター移動制御部92は、左右の各架台駆動機構71の各架台アクチュエータ75に決定した目標駆動力を出力させるように、各架台アクチュエータ75を制御する。
マスター移動制御部92は、以上の如くSTEP25の処理(足部架台制御の処理)を実行した後、さらに、STEP26の処理を実行する。このSTEP26では、マスター移動制御部92は、前記STEP21での処理部92dの処理により求めたフィードバック補正量↑Acc_mb_fb(上体支持部65の位置(マスター基準点Qmの位置)が基準位置から乖離するの抑制するために付加する並進加速度。以降、上体支持部加速度補正量↑Acc_mb_fbという)に応じてマスター基台53の傾斜角を制御する。該上体支持部加速度補正量↑Acc_mb_fbは、本発明おける付加並進加速度に相当するものである。
この場合、マスター基台53の傾斜に起因して発生する重力の斜面方向成分によって、並進加速度補正量↑Acc_mb_fbを打ち消す方向の並進加速度が上体支持部65に付加されるように、マスター基台53の傾斜角が制御される。
具体的には、マスター移動制御部92は、マスター側グローバル座標系Cmで見た上体支持部加速度補正量↑Acc_mb_fbを、修正目標上体支持部位置↑P_mb_mdfd_aim及び修正目標上体支持部姿勢角↑θ_mb_mdfd_aimにより規定されるマスター上体座標系Cmbで見た並進加速度であるローカル加速度補正量↑Acc_mb_fb_localに座標変換する。
そして、マスター移動制御部92は、ローカル加速度補正量↑Acc_mb_fb_localのXmb軸方向の成分Acc_mb_fb_x_localと、Ymb軸方向の成分Acc_mb_fb_y_localとを用いて、次式(50a),(50b)により、マスター上体座標系CmbのXmb軸周り方向(ロール方向)でのマスター基台53の目標傾斜角である目標ローカル基台傾斜角θ_base_x_localと、マスター上体座標系CmbのYmb軸周り方向(ピッチ方向)でのマスター基台53の傾斜角である目標ローカル基台傾斜角θ_base_y_localとを求める。
θ_base_x_local=−atan(Acc_mb_fb_y_local/g) ……(50a)
θ_base_y_local=atan(Acc_mb_fb_x_local/g) ……(50b)
なお、atan( )は逆正接関数、gは重力加速度定数である。
次いで、マスター移動制御部92は、目標ローカル基台傾斜角θ_base_x_local,θ_base_y_localを実現するための各基台傾斜アクチュエータ58の出力部の目標変位を求める。さらに、マスター移動制御部92は各基台傾斜アクチュエータ58の出力部の目標変位と前記STEP20で取得した実基台傾斜アクチュエータ変位(観測値)との偏差に応じて、フィードバック制御則(比例則、比例・微分則)により該偏差をゼロに近づけるように、該基台傾斜アクチュエータ58の目標駆動力を決定する。そして、マスター移動制御部92は、各基台傾斜アクチュエータ58に決定した目標駆動力を出力させるように、各基台傾斜アクチュエータ58を制御する。
マスター移動制御部92は、以上の如くSTEP26の処理を実行した後、さらに、STEP27の処理を実行する。このSTEP27では、マスター移動制御部92は、STEP20で取得した実上体支持部反力と、STEP21で決定した仮想上体支持部運動とをメイン操縦制御部94に出力する。マスター移動制御部92の処理は以上の如く実行される。
補足すると、STEP27でメイン操縦制御部94に出力される実上体支持部反力は、マスター上体座標系Cmbで見た実上体支持部反力であるので、メイン操縦制御部94では、マスター移動制御部92から入力された実上体支持部反力を、これと共にマスター移動制御部92から入力された仮想上体支持部位置姿勢(↑P_mb_vir,↑θ_mb_vir)を用いて、仮想床座標系Cvirで見た実上体支持部反力に変換する。そして、その変換後の実上体支持部反力を用いて前記した処理を実行する。
ただし、マスター上体座標系Cmb見た実上体支持部反力を、仮想床座標系Cvirで見た実上体支持部反力に変換することを、マスター移動制御部92で実行するようにしてもよい。この場合には、メイン操縦制御部94での当該変換の処理は不要である。
なお、本実施形態では、マスター移動制御部92の制御処理が本発明における第A処理及び第C処理、第D処理、第E処理に相当する処理を含む。また、スレーブ移動制御部42の制御処理が本発明における第B処理に相当する。
(作用効果について)
以上説明した本実施液体の操縦システムによれば、オペレータPがマスター装置51上で通常の歩行動作と同様の歩行動作を行うことができるように、マスター装置51の動作制御が行われる。例えば、図17に例示する如く、オペレータPがマスター装置51上で歩行動作を行うと、その歩行動作に合わせて、上体支持部65と各足部架台70L,70Rの相対的な運動が行われるようにマスター装置51の動作制御が行われる。なお、図17は、前記上体支持部加速度補正量↑Acc_mb_fbが十分に小さい状態でのマスター装置51の動作を概略的に例示している。また、図17では、マスター装置51を簡略化して図示している。
図17に示す如く、オペレータPがマスター装置51上で歩行動作を行うように左右の脚を動かすと、オペレータPの支持脚が右脚である状況では、右側の足部に対するオペレタPの上体の動きに合わせるように、右側の足部を接地させた足部架台70Rに対して上体支持部65が相対的に移動すると共に、左側の足部架台90Lが、遊脚側の足部(左側の足部)の直下に位置するようにして、支持脚側の足部架台70Rに対して相対的に移動する。このことは、オペレータPの支持脚が左脚である状況でも同様である。
これにより、オぺレータPは、遊脚側の足部を対応する足部架台70に接地させることをスムーズに行いながら、実際の床上で歩行をしているような感覚で、仮想床面上で歩行動作を行うことができる。
そして、この場合、上体支持部65の位置としてのマスター基準点Qmの位置がマスター側グローバル座標系Cvirにおける所定の基準位置↑P0に徐々に収束するように上体支持部65の並進加速度に上体支持部加速度補正量(フィードバック補正量)↑Acc_mb_fbが付加される。このため、図16に示したように、上体支持部65の横方向位置(又はマスター基台53の横方向位置)が、基準位置(横方向基準位置)から乖離するのが抑制され、ひいては、オペレータPが継続的な歩行動作を行っても、マスター装置51を移動可能範囲AR_lim内に留まるように移動させることができる。
また、上体支持部65の上下方向位置も、上下方向基準位置から乖離しないようにマスター装置51の動作制御が行われるため、スレーブ床形状に応じて、仮想床が階段あるいは傾斜面になるように目標足部架台における足部架台70L,70Rの上下方向位置の差が設定されても、上体支持部65の上下方向位置が上下方向基準位置から大きく変化しないようにしつつ、オペレータPは、階段や傾斜面を上り下りするような感覚で歩行動作を実行できる。
また、図18に例示したように、前記上体支持部加速度補正量(フィードバック補正量)↑Acc_mb_fbに応じて、マスター基台53、上体支持部65及び足部架台70L,70Rの全体を傾斜させるため、オペレータPに作用する重力加速度の斜面方向(マスター基台53の傾斜方向)の成分が上体支持部加速度補正量↑Acc_mb_fbによる並進加速度を操作するように作用する。ひいては、オペレータPは、上体支持部加速度補正量↑Acc_mb_fbが付加されていないような感覚で歩行動作を行うことができる。
さらに、図19に例示した如く、足部架台70L,70Rがスレーブ装置1の下方のスレーブ床の傾斜に応じて傾斜するので、オペレータPは、スレーブ装置1が移動するスレーブ床面の傾き等を体感的に認識しつつ、そにれ合わせた態様で歩行動作を行うことができる。
以上のようにオペレータPは、マスター装置51上で、スレーブ床の床形状に則した形状の仮想床で、実際の床上と同様の形態で歩行動作を実行できる。ひいては、スレーブ装置1をスレーブ床上で所望の態様で移動させることを容易に行うことができる。
また、本実施形態では、前記上体側バイラテラル制御の処理によって、目標上体支持部運動と目標スレーブ上体運動とが決定されるので、例えば、、スレーブ上体に障害物との接触等に起因する外力が作用した場合に、オペレータPの上体は、その外力に応じた反力上体支持部65から受ける。ひいては、オペレータPは、スレーブ上体にスレーブ装置1の移動の妨げとなるような外力が作用したことを容易に体感的に認識することができる。ひいては、オペレータPは、スレーブ装置1の移動を中止する等の対応処置を適切に実行することが可能となる。
[第2実施形態]
次に、本発明の第2実施形態を図20〜図25を参照して以下に説明する。本実施形態では、本発明の一例として、図20に例示する移動体101を、第1実施形態と同様の構造の操縦装置51により操縦する操縦システムに関して説明する。以降の説明では、第1実施形態と同様に、操縦対象の移動体101をスレーブ装置101、該スレーブ装置101を操縦するための操縦装置51をマスター装置51という。
なお、本実施形態では、スレーブ側グローバル座標系Cs、マスター側グローバル座標系Cm、仮想床座標系Cvir、マスター上体座標系Cmbは、第1実施形態と同様に設定される座標系である。
[スレーブ装置の構成]
図20及び図21を参照して、本実施形態のスレーブ装置101の構成を説明する。なお、第1実施形態と同様に、スレーブ装置101の動作環境の床を「スレーブ床」と称する。また、スレーブ装置101の左右の構成要素を区別するために、必要に応じて適宜、左側の構成要素の参照符号と右側の構成要素の参照符号とにそれぞれ「L」、「R」を付加する。
図20を参照して、本実施形態のスレーブ装置101は、例えば人型の脚式移動体であり、基体としての上体102と、上体102の下部から延設された左右一対の(2つの)脚103L,103Rと、上体102の上部から延設された左右一対の(2つの)腕110L,110Rと、上体102の上端部に取付けられた頭部117とを備える。なお、図17では、紙面に垂直な方向がスレーブ装置101の前後方向である。
各脚103は、その構成要素のリンクとして大腿部104、下腿部105及び足部106を有し、該大腿部104、下腿部105及び足部106を、上体102側から順番に、股関節機構107、膝関節機構108、足首関節機構109を介して連結して構成されている。各脚103の関節機構107,108,109のそれぞれは、公知の構造の関節機構であり、1つ又は複数の関節(図示省略)により構成される。
例えば、上記関節として、1軸の回転自由度を有する公知の構造の関節(1つの回転軸周りに互いに相対回転し得るように連結された2つの部材により構成される関節)を使用し得る。そして、各脚3の股関節機構107、膝関節機構108、及び足首関節機構109は、それぞれ、例えば3つの関節、1つの関節、2つの関節により構成される。これにより、各脚103は、その先端部としての足部106が上体102に対して6自由度の運動自由度を有するように構成される。
各腕110は、その構成要素のリンクとして、上腕部111、前腕部112及びハンド部113を有し、該上腕部111、前腕部112及びハンド部113を、上体102側から順番に、肩関節機構114、肘関節機構115、手首関節機構116を介して連結して構成されている。各腕110の関節機構114,115,116のそれぞれは、1つ又は複数の関節(図示省略)により構成される。
例えば、各腕110の肩関節機構114、肘関節機構115、及び手首関節機構116は、各脚103と同様に、1軸の回転自由度を有する関節を使用して、それぞれ、3つの関節、1つの関節、2つの関節により構成され得る。これにより、各腕110は、その先端部としてのハンド部113が上体102に対して6自由度の運動自由度を有するように構成される。
また、各腕110のハンド部113は、物体の把持等、所用の作業を行い得るように構成され得る。例えば、各ハンド部113は、クランプ機構、あるいは、人の手指と同様の動作を行い得る複数の指機構、あるいは、工具等により構成され得る。
頭部117は、上体102の上端部に首関節機構118を介して取り付けられている。首関節機構118は、例えば、1軸、2軸、又は3軸の回転自由度を有するように1つ以上の関節により構成され得る。あるいは、頭部117は、上体102の上端部に固定されていてもよい。
上記の如く構成されたスレーブ装置101は、例えば人の歩行動作と同様に、各脚103の足部106の空中移動と床面への着地(接地)とを交互に行うように各脚103を動かすことでスレーブ床面上を移動(歩行)することができる。
補足すると、スレーブ装置101の脚103及び腕110のそれぞれは、6自由度の運動自由度に限らず、例えば7自由度以上の運動自由度を有するように構成されていてもよい。また、脚103及び腕110のそれぞれは、回転型の関節に限らず、直動型の関節を含んでいてもよい。また、スレーブ装置101は、2つの腕110L,110Rを有する移動体に限らず、1つ又は3つ以上の腕を有する移動体、あるいは、腕を備えない移動体であってよい。また、スレーブ装置101は、頭部117を備えない移動体であってもよい。また、スレーブ装置101の上体102は、例えば、その上部と下部とが互いに相対変位し得るように、該上部と下部との間に1つ以上の関節を備えるように構成されていてもよい。
図21を参照して、スレーブ装置101はさらに、各関節を駆動する関節アクチュエータ121を備える。また、スレーブ装置101は、該スレーブ装置101の動作状態を検出するための検出器として、各関節の実際の変位である実関節変位を検出するための関節変位検出器122と、上体102の実際の姿勢である実上体姿勢を検出するための上体姿勢検出器123と、各足部106が接地したスレーブ床面から受ける床反力である実足部床反力を検出するための床反力検出器125と、スレーブ装置101がその各足部106を介して接地するスレーブ床の実際の床形状である実スレーブ床形状を検出するための床形状検出器127とを備える。
関節アクチュエータ121及び関節変位検出器122は、それぞれ、スレーブ装置101の各関節毎に備えられ、床反力検出器125は、各脚103毎に備えられている。ただし、図2では、関節アクチュエータ121、関節変位検出器122及び床反力検出器125のそれぞれの1つだけを代表的に図示している。
各関節アクチュエータ121は、例えば電動モータにより構成され、駆動対象の関節を、図示しない減速機等の適宜の動力伝達機構を介して駆動するように、該関節に接続されている。なお、各関節アクチュエータ121は、電動モータに限らず、例えば、油圧アクチュエータにより構成されていてもよい。また、各関節アクチュエータ121は、回転型のアクチュエータに限らず、直動型のアクチュエータであってもよい。
各関節変位検出器122は、例えばロータリエンコーダ、レゾルバ、ポテンショメータ等により構成され、検出対象の関節の実関節変位を検出し得るように、該関節(又は該関節の変位に連動して回転する回転部材)に接続されている。
上体姿勢検出器123は、例えば、3軸の加速度(3次元の並進加速度ベクトル)を検出可能な加速度センサ123aと、3軸の角速度(3次元の角速度ベクトル)を検出可能な角速度センサ123bとを含む慣性センサを有し、上体102に生じる加速度及び角速度を検出し得るように上体102に搭載されている。
この上体姿勢検出器123は、本実施形態では、加速度センサ123a及び角速度センサ123bのそれぞれで検出された加速度及び角速度から、実上体姿勢のうちの傾き(横方向の軸周り方向での姿勢角)である実上体傾きを推定する処理を実行する姿勢推定部123cを含む。該姿勢推定部123cは、例えばマイクロコンピュータもしくはプロセッサ、メモリ、インターフェース回路等を含む電子回路ユニットにより構成される。
そして、姿勢推定部123cは、加速度及び角速度のそれぞれの観測値から、例えばストラップダウン方式等の公知に手法の演算処理により実上体傾きを推定し、その推定値(観測値)を出力する。なお、姿勢推定部123cが推定する実上体傾きは、より詳しくは、互いに直交する2つの横方向の軸(例えば後述するスレーブ側グローバル座標系CgsのX軸及びY軸)のそれぞれの軸周り方向での上体102の傾きの組である。
補足すると、姿勢推定部123cは、加速度センサ123a及び角速度センサ123bの搭載位置から離れた位置でスレーブ装置1に搭載されていてもよい。また、姿勢推定部123cは、後述するスレーブ制御部131に含まれていてもよい。また、姿勢推定部123cは、スレーブ装置101の上体102の傾きだけでなく、上体102の向きを含めた姿勢を推定し得るように構成することも可能である。
また、上体姿勢検出器123は、例えば、カメラによるスレーブ装置101の撮影映像を使用して、公知のモーションキャプチャの処理により上体102の傾き(又は、向きを含めた上体102の姿勢)を推定し得るように構成されていてもよい。この他、上体102の傾き(又は向きを含めた姿勢)を推定する手法としては、任意の物体の自己位置及び姿勢を推定可能な公知の様々な手法を採用し得る。
各床反力検出器125は、例えば並進力及びモーメント(力のモーメント)をそれぞれ3次元のベクトルとして検出可能な6軸力センサにより構成され、各脚103の足部106に作用する実足部床反力(並進力及びモーメント)を検出し得るようにスレーブ装置101に取付けられている。例えば、図1に示す如く、各床反力検出器125は、各脚103の足部106と足首関節機構109との間に介装されている。
床形状検出器127は、本実施形態では、例えば、スレーブ装置101の上体102等に搭載されたカメラもしくは測距センサ(レーザ・レンジ・ファインダ等)を用いてスレーブ装置101の周囲のスレーブ床の形状を逐次認識し、その認識した床形状に基づいて、スレーブ装置101の各足部106の下方の実スレーブ床形状(詳しくは、各足部106の下方のスレーブ床の傾斜角及び高さ等)を推定し得るように構成されている。
なお、例えば、床形状検出器127が外部のサーバ等からスレーブ床の各所の形状情報を取得し得る場合には、床形状検出器127は、スレーブ装置1の各足部106の位置情報と、スレーブ床の形状情報とから各足部106の下方のスレーブ床の床形状を推定し得るように構成されていてもよい。
スレーブ装置101は、さらに、スレーブ装置101の作動全体の動作目標の決定処理等を実行する機能を有するスレーブ制御部131と、各関節の作動を関節アクチュエータ121を介して制御する機能を有する関節制御部132と、後述するマスター制御部141との間で無線通信を行うための通信装置133とを備える。これらは、上体102等、スレーブ装置101の任意の適所に搭載される。
スレーブ制御部131及び関節制御部132のそれぞれは、例えば、マイクロコンピュータ、メモリ、インターフェース回路等を含む電子回路ユニットにより構成される。スレーブ制御部131には、上体姿勢検出器123及び各床反力検出器125のそれぞれにより検出又は推定された観測データが入力されると共に、スレーブ装置101の動作に関する指令情報が後述するマスター制御部141から通信装置133を介して入力される。なお、スレーブ制御部131に入力される観測データや指令情報は、ローパスフィルタ等のフィルタリング処理を施したフィルタリング値であってもよい。
そして、スレーブ制御部131は、実装されたハードウェア構成及びプログラム(ソフトウェア構成)の両方又は一方により実現される機能として、マスター制御部141から入力される指令情報等に基づいて、スレーブ装置101の基本の動作目標を決定するスレーブ動作目標決定部131aと、該基本の動作目標のうち、各脚103の運動に関する動作目標をコンプライアンス制御の処理を用いて適宜修正する複合コンプライアンス動作決定部131bと、スレーブ装置101の動作目標に応じて各関節の変位(回転角)の目標値である目標関節変位を決定する関節変位決定部131cと、スレーブ装置101の上体102の実際の横方向位置である実スレーブ上体横方向位置を推定する上体横方向位置推定部131dとを含む。
本実施形態では、スレーブ動作目標決定部131aが決定する基本の動作目標には、上体102の目標運動である目標スレーブ上体運動と、各脚103の目標運動である目標スレーブ脚運動と,スレーブ装置101にスレーブ床面から作用する床反力の目標値である目標スレーブ床反力とが含まれる。
この場合、目標スレーブ上体運動は、詳しくは、上体102の位置及び姿勢の組の目標値である目標上体位置姿勢の時系列により表され、目標スレーブ脚運動は、詳しくは、各脚103の足部106の位置及び姿勢の組の目標値である目標足部位置姿勢の時系列により表される。
ここで、スレーブ装置101の上体102及び各足部106のそれぞれの目標位置及び目標姿勢は、特にことわらない限り、第1実施形態の場合と同様にスレーブ装置101の動作環境に設定(定義)されるスレーブ側グローバル座標系Cs(3つの座標軸Xs軸、Ys軸、及びZs軸を有する3軸直交座標系)で見た位置及び姿勢のそれぞれの目標値として表現される。
また、スレーブ動作目標決定部131aが決定する基本の動作目標のうちの目標スレーブ床反力は、本実施形態では、スレーブ装置101に床面から作用する全床反力の目標値である目標全床反力と、目標全床反力の圧力中心点(COP)の目標位置としての目標全床反力中心点と、スレーブ装置101の各足部106に床面から作用する床反力の目標値である目標足部床反力と、各足部106での目標足部床反力の圧力中心点(COP)の目標位置としての目標足部床反力中心点とのそれぞれの時系列により表される。なお、上記「全床反力」は、スレーブ装置101の2つの足部106,106のそれぞれに作用する床反力の合力である。また、スレーブ装置101が床以外から外力を受けない場合には、目標全床反力中心点は、ZMP(Zero Moment Point)の目標位置である。
なお、図21での図示は省略したが、本実施形態のスレーブ装置101は、上体102に対して可動な腕110及び頭部117を備えることから、スレーブ動作目標決定部131aは、さらに、各腕110の目標運動である目標スレーブ腕運動と、頭部117の目標運動である目標スレーブ頭部運動とを決定する機能も含む。
この場合、目標スレーブ腕運動は、例えば、各腕110のハンド部113の上体102に対する相対的な目標位置姿勢(上体102に対して設定されたローカル座標系で見た目標位置姿勢)の時系列により表される。同様に、目標スレーブ頭部運動は、例えば、頭部117の上体102に対する相対的な目標位置姿勢(上体102に対して設定されたローカル座標系で見た目標位置姿勢)の時系列により表される。
あるいは、目標スレーブ腕運動は、例えば、各腕110の各関節の目標関節変位の時系列により構成されていてもよい、同様に、目標スレーブ頭部運動は、例えば、首関節機構118の各関節の目標関節変位の時系列により構成されていてもよい、
関節制御部132には、各関節変位検出器122で検出された各関節の実関節変位(観測値)が入力されると共に、スレーブ制御部131で決定された各関節の目標関節変位が入力される。そして、関節制御部132は、実装されたハードウェア構成及びプログラム(ソフトウェア構成)により実現される機能によって、各関節毎に、実関節変位を目標関節変位に追従させるように各関節アクチュエータ121を制御する。
具体的には、関節制御部132は、各関節毎に、目標関節変位と、関節変位検出器122により検出された実関節変位との偏差を用いて、フィードバック制御則により該偏差をゼロに収束させるように関節アクチュエータ121の目標駆動力を決定する。そして、関節制御部132は、決定した目標駆動力を関節アクチュエータ121から出力させるように、該関節アクチュエータ121を制御する。この場合、フィードバック制御則としては、例えばP則(比例則)、PD則(比例・微分則)、PID則(比例・積分・微分則)等の公知のフィードバック制御則を使用し得る。
[マスター装置の構成]
次にマスター装置51の構成を、第1実施形態で説明した図3及び図4と、図22及び図23とを参照して説明する。本実施形態のマスター装置51の機構的な構成は、第1実施形態で説明したものと同じである。このため、本実施形態でのマスター装置51の機構的な構成については第1実施形態と同一の参照符号を使用し、説明を省略する。
一方、本実施形態のマスター装置51は、制御及び検出器に関する一部の構成が第1実施形態のマスター装置51と相違する。具体的には、図22及び図23を参照して、本実施形態のマスター装置51は、第1実施形態と同様に、実上体支持部反力を検出するための上体力検出器64、移動駆動機構55の各電動モータ55a,55bの実モータ回転角を検出するためのモータ回転検出器56、マスター昇降機構60に関する実スライド変位を検出するためのスライド変位検出器67、マスター基台53に関する実マスター基台傾斜状態(実基台傾斜アクチュエータ変位)を検出するための基台傾斜検出器59、架台駆動機構71に関する実架台変位(実架台アクチュエータ変位)を検出するための架台変位件検出器76、オペレータPの各足部に関する実オペレータ足部接地反力を検出するための足部力検出器74を備える。これらの検出器は、第1実施形態のものと同じである。
一方、本実施形態では、マスター装置51は、オペレータPの各足部の実際の位置姿勢である実オペレータ足部位置姿勢とオペレータPの上体の実際の傾き(横方向の軸周りの方向の姿勢角)である実オペレータ上体傾きとを含むオペレータPの実際の運動を検出するためのオペレータ運動検出器78(図22に示す)を備える。
このオペレータ運動検出器78は、本実施形態では、マスター装置51に搭載された1つ以上のカメラ78aを含む。該カメラ78aは、マスター装置51に搭乗したオペレータPの上体の動きと各脚の動きとを各々撮影し得るようにマスター装置51の支柱61もしくは基台53等に取り付けられている。なお、オペレータPの上体や各脚にマーカが付されていてもよい。
オペレータ運動検出器78は、さらにカメラ78aの撮影映像から、オペレータPの運動状態を推定する処理を実行する運動推定部78bを含む。該運動推定部78bは、例えば、マイクロコンピュータもしくはプロセッサ、メモリ、インターフェース回路等を含む電子回路ユニットにより構成され、基台53等、マスター装置51の任意の適所に搭載されている。なお、運動推定部78bは、後述するマスター制御部141に含まれていてもよい。
この運動推定部78bは、カメラ78aから入力される撮影映像から、例えば公知のモーションキャプチャの処理を実行することで、オペレータPの運動状態を推定し、その推定した運動状態を示すデータを出力する。この場合、本実施形態では、運動推定部78bが推定する運動状態は、オペレータPの上体の実際の姿勢である実オペレータ上体姿勢のうちの実オペレータ上体傾きと、オペレータPの各足部の実オペレータ足部位置姿勢とを含む。
この場合、運動推定部78bは、マスター装置51に対して設定されたローカル座標系、例えば第1実施形態の場合と同様に設定(定義)されるマスター上体座標系Cmbで見た実オペレータ上体傾き及び実オペレータ足部位置姿勢を推定し得る。なお、実オペレータ上体傾きに加えて、オペレータPの上体の実際の向き(実オペレータ上体向き)を推定し得るように構成することも可能である。
補足すると、オペレータ運動検出器78によりオペレータPの上体及び各足部の運動状態を推定する手法は、カメラ78aの撮影映像を使用するモーションキャプチャ以外の手法であってもよい。例えば、オペレータPの上体と各足部とに、各々、加速度センサ及び角速度センサを含む慣性センサを装着し、この慣性センサにより検出される加速度及び角速度から、ストラップダウン方式等の公知の手法により、オペレータPの上体及び各足部の運動状態を推定することも可能である。この他、オペレータPの上体及び各足部の運動状態を推定する手法として、物体の自己位置及び姿勢の推定を行い得る様々な公知の手法を使用し得る。
また、例えばオペレータPの各脚の各関節(股関節、膝関節及び足首関節)のそれぞれの変位を検出可能な関節変位センサを各脚に装着しておき、各脚の関節の変位の検出値から、各脚の剛体リンクモデルを用いて、オペレータPの上体に対する各足部の相対的な位置姿勢を推定してもよい。そして、オペレータの各足部の相対的な位置姿勢の観測値と、モーションキャプチャ等の適宜の手法で推定したオペレータPの上体の実際の位置姿勢(実オペレータ上体位置姿勢)の観測値とから、実オペレータ足部位置姿勢を推定してもよい。
また、オペレータ運動検出器78は、マスター装置51の動作環境に第1実施形態の場合と同様に設定(定義)されるマスター側グローバル座標系Cmで見た実オペレータ上体傾き及び実オペレータ足部位置姿勢を推定するように構成することも可能である。
マスター装置51は、さらに、該マスター装置51の動作制御を行う機能や、スレーブ装置1の動作に関する指令情報をスレーブ制御部131に出力(送信)する機能等を有するマスター制御部141と、前記スレーブ制御部131との間で無線通信を行うための通信装置142とを備える。これらは、基台53等、マスター装置51の任意の適所に搭載される。
マスター制御部141は、例えば、マイクロコンピュータ、メモリ、インターフェース回路等を含む電子回路ユニットにより構成される。該マスター制御部141には、上体力検出器64、各モータ回転検出器56、スライド変位検出器67、オペレータ運動検出器78、基台傾斜検出器59、架台変位検出器76、及び足部力検出器74のそれぞれにより検出又は推定された観測データが入力されると共に、スレーブ制御部131から通信装置142を介して実スレーブ上体横方向位置の観測値と実スレーブ床形状の観測値とが入力される。なお、マスター制御部141に入力される各観測データは、ローパスフィルタ等のフィルタリング処理を施したフィルタリング値であってもよい。
そして、マスター制御部141は、実装されたハードウェア構成及びプログラム(ソフトウェア構成)の両方又は一方により実現される機能として、基台3、上体支持部65及び各足部架台70の運動を、各移動駆動機構55の電動モータ55a,55bと、スライドアクチュエータ66と、架台アクチュエータ75と、基台傾斜アクチュエータ58を介して制御するマスター移動制御部141aと、上体支持部65の目標運動である目標上体支持部運動を決定する目標上体支持部運動決定部141bとを含む。
ここで、目標上体支持部運動決定部141bが決定する目標上体支持部運動は、本実施形態では、上体支持部65の目標位置である目標上体支持部位置と、上体支持部65の目標向きである目標上体支持部向きとを含む。これらの目標上体支持部位置及び目標上体支持部向きは、第1実施形態で説明した仮想床に対する(前記仮想床座標系Cvirで見た)目標運動である。
また、マスター制御部141は、スレーブ装置1の動作に関する指令情報として、仮想床に対するオペレータPの上体の姿勢である仮想オペレータ上体姿勢(向き及び傾き)と、仮想床に対する上体支持部65の高さ(上下方向位置)である仮想上体支持部高さ(又は仮想床に対するオペレータPの上体の高さ(上下方向位置)である仮想オペレータ上体高さ)と、仮想床に対するオペレータPの各足部の位置姿勢である仮想オペレータ足部位置姿勢と、オペレータPの各足部の実オペレータ足部接地反力の観測値とを通信装置142を介してスレーブ制御部131に送信する機能を有する。
補足すると、本実施形態では、マスター制御部141及びスレーブ制御部131の両方が本発明における制御装置に相当する。
[制御処理及び作動]
次に、前記スレーブ制御部131及びマスター制御部141の制御処理の詳細と、スレーブ装置101及びマスター装置51の作動とを説明する。
[マスター制御部の制御処理]
まず、マスター制御部141の制御処理を説明する。マスター制御部141は、所定の制御処理周期で図24のフローチャートに示す制御処理を逐次実行する。STEP31において、マスター制御部141は、目標上体支持部運動決定部141bにより、目標上体支持部運動(目標上体支持部位置及び目標上体支持部向き)を決定する。
この場合、目標上体支持部運動決定部141bは、スレーブ装置101のスレーブ制御部131から、スレーブ側グローバル座標系Csで見た実スレーブ上体横方向位置の観測値を通信装置142を介して取得(受信)する。そして、目標上体支持部運動決定部141bは、仮想床座標系Cvirでの上体支持部65の仮想的な運動による該上体支持部65の横方向位置としての仮想上体支持部横方向位置と、実スレーブ上体横方向位置とが、次式(61a),(61b)により示される所定の関係を満たすことを目標として(該所定の関係を目標対応関係として)、スレーブ制御部131から取得した実スレーブ上体横方向位置の観測値に応じて、目標上体支持部位置のうちの横方向位置である目標上体支持部横方向位置を決定する。
P_mb_x_vir=Kpmb*P_sb_x_act+Cpmb_x ……(61a)
P_mb_y_vir=Kpmb*P_sb_y_act+Cpmb_y ……(61b)
ここで、式(61a),(61b)のKpmb、Cpmb_x,Cpmb_yは、あらかじめ設定された所定値の定数である。なお、Cpmb_x,Cpmb_yのそれぞれはゼロであってもよい。
また、P_mb_x_act、P_mb_y_actは、それぞれ、仮想床座標系Cvirで見た仮想上体支持部横方向位置のうちのXvir軸方向位置、Yvir軸方向位置であり、P_sb_x_act、P_sb_y_actは、スレーブ側グローバル座標系Cgsで見た実スレーブ上体横方向位置のXs軸方向位置、Ys軸方向位置である。
従って、目標上体支持部運動決定部141bは、スレーブ制御部131から取得した現在の実スレーブ上体横方向位置(P_sb_x_act、P_sb_y_act)の観測値から、次式(62a),(62b)により目標上体支持部横方向位置(P_mb_x_aim、P_mb_y_aim)を決定する。
P_mb_x_aim=Kpmb*P_sb_x_act+Cpmb_x ……(62a)
P_mb_y_aim=Kpmb*P_sb_y_act+Cpmb_y ……(62b)
ここで、P_mb_x_aim、P_mb_y_aimは、それぞれ、仮想床座標系Cvirで見た目標上体支持部横方向位置のうちのXvir軸方向位置、Yvir軸方向位置である。
なお、本実施形態では、説明の便宜上、マスター装置51によるスレーブ装置101の移動操縦の開始時等において、マスター装置51の前後方向に対する仮想床座標系CvirのXvir軸方向(又はYvir軸方向)のヨー方向での向きと、スレーブ装置101の前後方向に対するスレーブ側グローバル座標系CsのXs軸方向(又はYs軸方向)のヨー方向での向きとが、互いに同じ向きになるように、仮想床座標系CvirのXvir軸方向(又はYvir軸方向)と、スレーブ側グローバル座標系CsのXs軸方向(又はYs軸方向)とが初期設定されているものとする。例えば、仮想床座標系CvirのXvir軸方方向がマスター装置51の前後方向に一致し、スレーブ側グローバル座標系CsのX軸方向が、スレーブ装置101の前後方向に一致するように設定される。
ただし、マスター装置51によるスレーブ装置101の移動操縦の開始時等において、マスター装置51の前後方向に対する仮想床座標系CvirのXvir軸方向(又はYvir軸方向)のヨー方向での向きと、スレーブ装置101の前後方向に対するスレーブ側グローバル座標系CsのXs軸方向(又はYs軸方向)のヨー方向での向きとは異なっていてもよい。この場合には、これらの向きに基づいて、スレーブ側グローバル座標系Cgsで見た実スレーブ上体横方向位置の観測値を、仮想床座標系Cvirで見た横方向位置に座標変換すればよい。
補足すると、上記式(62a),(62b)の右辺の演算により求められる横方向位置をオペレータPの上体の目標横方向位置(仮想床座標系Cvirで見た目標横方向位置)である目標オペレータ上体横方向位置として決定し、該目標横方向位置に応じて目標上体支持部横方向位置を決定してもよい。
この場合、上記式(62a),(62b)により目標上体支持部横方向位置を決定する処理は、換言すれば、式(62a),(62b)の右辺の演算により目標オペレータ上体横方向位置を決定し、その目標オペレータ上体横方向位置をそのまま、目標上体支持部横方向位置として決定する処理と言える。
一方、上体支持部65とオペレータPの上体との間に介在するパッド等の弾性部材が、上体支持部65とオペレータPの上体との間で作用する力に応じて弾性変形し、この弾性変形により、上体支持部65の横方向位置とオペレータPの上体の横方向位置とが相対変位する。
そこで、このことを考慮して、上記式(62a),(62b)の右辺の演算により決定した目標オペレータ上体横方向位置を、上体力検出器64により検出される実上体支持部反力のうちの横方向の並進力(Xvir軸方向及びYvir軸方向の並進力)に応じて補正することで、目標上体支持部横方向位置を決定してもよい。
具体的には、例えば、次式(62a−1),(62b−1)により目標上体支持部横方向位置(P_mb_x_aim,P_mb_y_aim)を決定してもよい。
P_mb_x_aim
=P_opb_x_aim+kspring_fx*F_mb_x_act
=(Kpmb*P_sb_x_act+Cpmb_x)+kspring_fx*F_mb_x_act
……(62a−1)
P_mb_y_aim
=P_opb_y_aim+kspring_fy*F_mb_y_act
=(Kpmb*P_sb_y_act+Cpmb_y)+kspring_fy*F_mb_y_act
……(62b−1)
ここで、P_opb_x_aim,P_opb_y_aimは、それぞれ、オペレータPの上体の目標横方向位置のうちのXvir軸方向位置、Yvir軸方向位置、F_mb_x_act,F_mb_y_actは、それぞれ、上体力検出器64より検出される実上体支持部反力のうちのXvir軸方向の並進力、Yvir軸方向の並進力、kspring_fxは、オペレータPの上体と上体支持部65との間で発生するXvir軸方向の並進力に関するバネ定数(剛性)の逆数としてあらかじめ設定された値、kspring_fyは、オペレータPの上体と上体支持部65との間で発生するYvir軸方向の並進力に関するバネ定数(剛性)の逆数としてあらかじめ設定された値である。
また、目標上体支持部運動決定部141bは、本実施形態では、上体力検出器64により検出される実上体支持部反力のうちの上下方向(Zvir軸方向)の並進力である実上体支持部上下方向反力F_mb_z_actの観測値と、実上体支持部反力のうちのヨー方向(Zvir軸周り方向)のモーメントである実上体支持部ヨー方向モーメントM_mb_z_actの観測値とを取する。
そして、目標上体支持部運動決定部141bは、実上体支持部上下方向反力F_mb_z_actの観測値を用いて、目標上体支持部位置のうちの上下方向の位置(床面からの高さ)である目標上体支持部高さP_mb_z_aimを決定すると共に、実上体支持部ヨー方向モーメントM_mb_z_actの観測値を用いて、目標上体支持部向きθ_mb_z_aimを決定する。
さらに詳細には、目標上体支持部高さP_mb_z_aimを決定する処理では、目標上体支持部運動決定部141bは、実上体支持部上下方向反力F_mb_z_actが次式(63)の関係を満たすように(F_mb_z_actがCzに収束するように)、目標上体支持部高さP_mb_z_aimを決定する。
F_mb_z_act−Cz=0……(63)
ここで、Czは、オペレータPの脚の負荷を軽減するために上体支持部65からオペレータPに作用させる上向きの並進力の目標値(所定値)である。該目標値Czは、例えば、オペレータPに作用する重力の所定割合の大きさに設定され得る。ただし、該目標値Czはゼロでもよい。
具体的には、目標上体支持部運動決定部141bは、実上体支持部上下方向反力F_mb_z_actの観測値と、その目標値(=Cz)との偏差(式(3)の左辺の値)に応じて、フィードバック制御則(例えばP則、PD則、PID則等)により該偏差をゼロに収束させるように、上体支持部65の上下方向の目標並進速度V_mb_z_aimを決定する。
そして、目標上体支持部運動決定部141bは、決定した目標並進速度V_mb_z_aimを積分することにより、目標上体支持部高さP_mb_z_aimを決定する。これにより、実上体支持部上下方向反力F_mb_z_actが、その目標値(=Cz)に収束するように、目標上体支持部高さP_mb_z_aimが決定される。
また、目標上体支持部向きθ_mb_z_actを決定する処理では、目標上体支持部運動決定部141bは、実上体支持部ヨー方向モーメントM_mb_z_actがゼロに収束するように目標上体支持部向きθ_mb_z_actを決定する。
この場合、目標上体支持部運動決定部81bは、実上体支持部ヨー方向モーメントM_mb_z_actをフィードバック制御則(例えばP則、PD則、PID則等)によりゼロに収束させるように、該実上体支持部ヨー方向モーメントM_mb_z_actの観測値に応じて上体支持部65のヨー方向の目標角速度ω_mb_z_aimを決定する。
そして、目標上体支持部運動決定部141bは、決定した目標角速度ω_mb_z_aimを積分することにより、目標上体支持部向きθ_mb_z_aimを決定する。これにより、実上体支持部ヨー方向モーメントM_mb_z_actがゼロに収束するように、目標上体支持部向きθ_mb_z_aimが決定される。
STEP31では、以上の如く、仮想床座標系Cvirで見た目標上体支持部運動として、目標上体支持部位値↑P_mb_aim(P_mb_x_aim,P_mb_y_aim,P_mb_z_aim)と、目標上体支持部向きθ_mb_z_aimとが決定される。
補足すると、目標上体支持部運動のうちの目標上体支持部向きθ_mb_z_aimの決定手法は、上記の手法に限られない。例えば、オペレータPを撮影するカメラや、オペレータPの上体等に装着した慣性センサを使用したモーションキャブチャの処理により、オペレータPの上体の実際の向き(マスター側グローバル座標系Cgm又はマスター上体座標系Cmbで見た向き)である実オペレータ上体向きを推定し、該実オペレータ上体向きの推定値を仮想床座標系Cvirで見た向きに座標変換したものを目標上体支持部向きθ_mb_z_aimとして決定してもよい。なお、この場合、実オペレータ上体向きは、前記オペレータ運動検出器78で推定してもよい。
また、目標上体支持部高さP_mb_z_aimの決定手法も上記の手法に限られない。例えば、マスター装置51の足部力検出器74によりオペレータPの各足部毎に検出される接地反力のうちの上下方向の並進力に基づいて、目標上体支持部高さP_mb_z_aimを決定してもよい。
具体的には、目標上体支持部運動決定部141bは、オペレータPの足部のそれぞれの接地反力の合力(以降、オペレータ全床反力という)の観測値を、足部力検出器75により検出される接地反力を基に求める。
次いで、目標上体支持部運動決定部141bは、実際のオペレータ全床反力の上下方向並進力F_opf_total_z_actが次式(63−1)の関係を満たすように(F_opf_total_z_actがCtotalfzに収束するように)、目標上体支持部高さP_mb_z_aimを決定する。
F_opf_total_z_act−Ctotalfz=0……(63−1)
ここで、Ctotalfzは、床からオペレータPの脚に作用させる全床反力の上下方向並進力成分の目標値(所定値)である。該目標値Ctotalfzは、例えば、オペレータPに作用する重力の所定割合の大きさに設定され得る。
具体的には、目標上体支持部運動決定部141bは、実オペレータ全床反力の上下方向並進力F_opf_total_z_actの観測値と、その目標値(=Ctotalfz)との偏差(式(3−1)の左辺の値)に応じて、フィードバック制御則(例えばP則、PD則、PID則等)により該偏差をゼロに収束させるように、上体支持部65の上下方向の目標並進速度V_mb_z_aimを決定する。
そして、目標上体支持部運動決定部141bは、決定した目標並進速度V_mb_z_aimを積分することにより、目標上体支持部高さP_mb_z_aimを決定する。これにより、実オペレータ全床反力の上下方向並進力F_opf_total_z_actが、その目標値(=Ctotalfz)に収束するように、目標上体支持部高さP_mb_z_aimが決定される。
次に、マスター制御部141は、マスター移動制御部141aによりSTEP32〜38の処理を実行する。STEP32では、マスター移動制御部141aは、仮想上体支持部運動と、修正目標上体支持部運動とを決定する。ここで、仮想上体支持部運動は、第1実施形態の場合と同様に、仮想床上での上体支持部65の運動を、目標上体支持部運動決定部141bで決定された目標上体支持部運動に従って行ったと仮定した場合に、仮想床に対して仮想的に実現される上体支持部65の運動を意味する。
また、修正目標上体支持部運動は、第1実施形態の場合と同様に、マスター側グローバル座標系Cmで見たマスター装置51の位置(前記マスター基準点Qmの位置)が所定の基準位置から乖離するのを抑制すると共に、上体支持部65の向き(ヨー方向の姿勢角)が所定の基準向きから乖離するのを抑制するように、目標上体支持部運動を修正した目標運動を意味する。
STEP32で求める仮想上体支持部運動は、本実施形態では、上体支持部65の位置としての仮想上体支持部位置↑P_mb_virと、上体支持部65の向き(ヨー方向の姿勢角)としての仮想上体支持部向きθ_mb_z_virとを含む。この場合、仮想上体支持部向きθ_mb_z_virは、目標上体支持部向きθ_mb_z_aimに一致するように決定される、なお、STEP32では、さらに、目標上体支持部向きを1階微分してなるヨー方向の角速度である仮想上体支持部角速度ω_mb_z_virを、仮想上体支持部運動の構成要素として求めてもよい。
あるいは、STEP32では、目標上体支持部向きθ_mb_z_aimを2階微分してなる角加速度(目標上体支持部角加速度β_mb_z_aim)から、第1実施形態で説明した図13の処理部92aと同様の処理を実行することで、仮想上体支持部角速度ω_mb_z_vir及び仮想上体支持部向きθ_mb_z_virを求めてもよい。
また、仮想上体支持部運動のうちの仮想上体支持部位置↑P_mb_virは、目標上体支持部位置↑P_mb_virに一致するように決定される。なお、STEP32では、さらに、目標上体支持部位置↑P_mb_aimを1階微分してなる並進速度である仮想上体支持部並進速度↑V_mb_virを、仮想上体支持部運動の構成要素として求めてもよい。
あるいは、STEP32では、目標上体支持部位置↑P_mb_aimを2階微分してなる並進加速度(目標上体支持部並進加速度↑Acc_mb_aim)から、第1実施形態で説明した図14の処理部92cと同様の処理を実行することで、仮想上体支持部並進速度↑V_mb_ vir及び仮想上体支持部位置↑Pmb_virを求めてもよい。
また、STEP32で求める修正目標上体支持部運動は、本実施形態では、上体支持部65の目標位置としての修正目標上体支持部位置↑P_mb_mdfd_aimと、上体支持部65の目標向き(ヨー方向の目標姿勢角)としての修正目標上体支持部向きθ_mb_z_mdfd_aimとを含む。
この場合、修正目標上体支持部向きθ_mb_z_mdfd_aimを求める処理では、例えば、目標上体支持部向きθ_mb_z_aimを2階微分してなるヨー方向の角加速度である目標上体支持部角加速度β_mb_z_aimを用いて、前記第1実施形態で説明した図13の処理部92bの処理(詳しくは、修正姿勢角θ_mb_z_mdfdを求める処理)を実行することにより、修正目標上体支持部向きθ_mb_z_mdfd_aim(=図13に示すθ_mb_z_mdfd)が求められる。なお、この場合、ヨー方向における修正目標上体支持部角速度ω_mb_z_mdfd_aim(=図13に示すω_mb_z_mdfd)も求められる。
また、修正目標上体支持部運動のうちの修正目標上体支持部位置↑P_mb_mdfd_aimを求める処理では、例えば、目標上体支持部位置↑P_mb_aimを2階微分してなる並進加速度である目標上体支持部並進加速度↑Acc_mb_ aimを用いて、前記第1実施形態で説明した図14の処理部92dの処理を実行することにより、修正目標上体支持部位置↑P_mb_ mdfd_aimが求められる。なお、この場合、修正目標上体支持部並進速度↑V_mb_ mdfd_aimも求められる。
次に、マスター移動制御部141aは、次に、STEP33〜37の処理を実行する。これらのSTEP33〜37の処理は、それぞれ第1実施形態のSTEP22〜26と同様に行われる。
次いで、STEP38において、マスター移動制御部141aは、仮想床上でのオペレータPの運動における該オペレータPの上体の姿勢角(向き及び傾き)である仮想オペレータ上体傾きと、該オペレータPの左右の各足部の位置姿勢(位置及び姿勢角)である仮想オペレータ足部位置姿勢とを求める。
この場合、仮想オペレータ上体姿勢角のうちの仮想オペレータ上体傾きを求める処理では、マスター移動制御部141aは、オペレータ運動検出器78で検出された実オペレータ上体傾き(マスター上体座標系Cmbで見た傾き)を取得する。そして、マスター移動制御部141aは、取得した実オペレータ上体傾きを、STEP32で求めた仮想上体支持部向き(又はSTEP31で求めた目標上体支持部向き)とSTEP32で求めた仮想上体支持部位置(又はSTEP31で求めた目標上体支持部位置)とを用いて、仮想床座標系Cvirで見た傾きに座標変換することで、仮想オペレータ上体傾きを求める。
また、仮想オペレータ上体姿勢角のうちの仮想オペレータ上体向きを求める処理では、マスター移動制御部141aは、例えば、STEP32で求めた仮想上体支持部向きθ_mb_z_virと、上体力検出器64により検出された実上体支持部反力のうちのヨー方向のモーメントM_mb_z_act(実上体支持部ヨー方向モーメント)とから、次式(65)により仮想オペレータ上体向きθ_opb_z_virを求める。
θ_opb_z_vir=θ_mb_z_vir−kspring_mz*M_mb_z_act ……(65)
ここで、kspring_mzは、オペレータPの上体と上体支持部65との間で発生するヨー方向の回転力に関するバネ定数(剛性)の逆数としてあらかじめ設定された値である。補足すると、仮想オペレータ上体向きの推定手法は、上記の手法に限られず、他の手法を採用してもよい。例えば、オペレータPを撮影するカメラや、オペレータPの上体等に装着した慣性センサを使用したモーションキャブチャの処理により、実オペレータ上体向きを推定、該実オペレータ上体向きを、仮想床座標系Cvirで見た向きに座標変換することで、仮想オペレータ上体向きを求めてもよい。なお、実オペレータ上体向きの推定は、オペレータ運動検出器78で実行してもよい。
あるいは、例えば、上体支持部65に対するオペレータPの上体のヨー方向での相対変位(相対回転角)を、上体支持部65等に備えた適宜の変位センサにより検出し、該相対変位の観測値を仮想上体支持部向きθ_mb_z_virに加算することで、仮想オペレータ上体向きを求めることも可能である。
あるいは、例えば、オペレータPの上体の複数個所までの距離を計測可能な測距装置を用い、該測距装置による距離の観測値を基に、実オペレータ上体向きを推定し、その実オペレータ上体向きを仮想床座標系Cvirで見た向きに座標変換することで、仮想オペレータ上体向きを求めることも可能である。
また、仮想オペレータ足部位置姿勢を求める処理では、マスター移動制御部141aは、オペレータ運動検出器78で検出された実オペレータ足部位置姿勢(マスター上体座標系Cmbで見た位置姿勢)を取得し、その実オペレータ足部位置姿勢を、STEP32で求めた仮想上体支持部向き(又はSTEP31で求めた目標上体支持部向き)とSTEP32で求めた仮想上体支持部位置(又はSTEP31で求めた目標上体支持部位置)とを用いて、仮想床座標系Cvirで見た位置姿勢に座標変換することで、仮想オペレータ足部位置姿勢を求める。
マスター制御部141は、以上の如くマスター移動制御部141aの処理を実行した後、次にSTEP39において、スレーブ制御部31にスレーブ装置101の動作に関する指令情報を送信する。具体的には、マスター制御部141は、前記STEP38で求めた仮想オペレータ上体姿勢(向き及び傾き)及び仮想オペレータ足部位置姿勢と、前記STEP32で求めた仮想上体支持部運動のうちの仮想上体支持部高さと、オペレータPの左右の各足部について足部力検出器74で検出された実オペレータ足部接地反力とを指令情報の構成要素としてスレーブ制御部131に送信する。
この場合、マスター制御部141からスレーブ制御部131に出力する各指令情報のうち、仮想オペレータ上体姿勢、仮想オペレータ足部位置姿勢、及び仮想上体支持部高さのそれぞれは、仮想床座標系Cvirで見た状態量である。
また、実オペレータ足部接地反力については、マスター制御部141は、各足部力検出器74に対して設定されたセンサ座標系で見た接地反力の観測値を、架台変位76で検出された実架台変位と、STEP32で求めた仮想上体支持部向き(又はSTEP31で求めた目標上体支持部向き)とSTEP32で求めた仮想上体支持部位置(又はSTEP31で求めた目標上体支持部位置)とを用いて、仮想床座標系Cvirで見た実オペレータ足部接地反力に座標変換した上で、該実オペレータ足部接地反力を、スレーブ制御部131に出力する。
なお、マスター制御部141からスレーブ制御部131に出力(送信)する各指令情報は、ローパスフィルタ等のフィルタリング処理を施したフィルタリング値であってもよい。
本実施形態では、マスター制御部141の制御処理は以上の如く実行される。
[スレーブ制御部の制御処理]
次に、スレーブ制御部131の制御処理を説明する。スレーブ制御部131は、前記した各機能部の処理を所定の制御処理周期で逐次実行する。なお、以降の説明では、スレーブ装置1に係る状態量の実際の値または目標値を表す場合に、「実」又は「目標」と、該状態量の名称との間に「スレーブ」を適宜付加して表記する場合がある。
[スレーブ動作目標決定部の処理]
まず、スレーブ制御部131のスレーブ動作目標決定部131aの処理を説明する。スレーブ動作目標決定部131aには、図21に示すように、マスター制御部141から通信装置133を介して受信される仮想オペレータ上体姿勢(向き、傾き)、仮想上体支持部高さ(又は仮想オペレータ上体高さ)、仮想オペレータ足部位置姿勢、及び実オペレータ足部床反力のそれぞれの観測値が逐次入力されると共に、上体横方向位置推定部131dにより後述する如く推定される実スレーブ上体横方向位置の観測値とが逐次入力される。
そして、スレーブ動作目標決定部131aは、所定の制御処理周期で、図25のフローチャートに示す処理を実行する。STEP41において、スレーブ動作目標決定部131aは、オペレータPの左右の各足部の仮想オペレータ足部位置姿勢(仮想床座標系Cvirで見た仮想オペレータ足部位置姿勢)と、スレーブ装置101の左右の各足部106L,106Rの実スレーブ足部位置姿勢(スレーブ側グローバル座標系Csで見た実スレーブ足部位置姿勢)とが、次式(71a)〜(71d)により示される所定の関係を満たすことを目標として、マスター制御部141から受信したオペレータPの左右の各足部の仮想オペレータ足部位置姿勢に応じて、スレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部位置姿勢を決定する。
すなわち、スレーブ動作目標決定部131aは、オペレータPの左右の各足部の仮想オペレータ足部位置姿勢から、次式(71a−1)〜(71d−1)によりスレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部位置姿勢を決定する。
↑P_sf_act_L=Kpsf*↑P_opf_vir_L+↑Cpsf ……(71a)
↑P_sf_act_R=Kpsf*↑P_opf_vir_R+↑Cpsf ……(71b)
↑θ_sf_act_L=↑θ_opf_vir_L ……(71c)
↑θ_sf_act_R=↑θ_opf_vir_R ……(71d)
↑P_sf_aim_L=Kpsf*↑P_opf_vir_L+↑Cpsf ……(71a−1)
↑P_sf_aim_R=Kpsf*↑P_opf_vir_R+↑Cpsf ……(71b−1)
↑θ_sf_aim_L=↑θ_opf_vir_L ……(71c−1)
↑θ_sf_aim_R=↑θ_opf_vir_R ……(71d−1)
ここで、↑P_sf_act_L,↑P_sf_act_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの実際の位置(実スレーブ足部位置)、↑θ_sf_act_L,↑θ_sf_act_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの実際の姿勢(実スレーブ足部姿勢)、↑P_sf_aim_L,↑P_sf_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標位置(目標スレーブ足部位置)である。
また、↑θ_sf_act_L,↑θ_sf_act_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの実際の姿勢(実スレーブ足部姿勢)、↑θ_sf_aim_L,↑θ_sf_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標姿勢(目標スレーブ足部姿勢)である。
また、↑P_opf_vir_L,↑P_opf_vir_Rは、それぞれ、オペレータPの左側及び右側のそれぞれの仮想オペレータ足部位置、↑θ_opf_act_L,↑θ_opf_act_Rは、それぞれ、オペレータPの左側及び右側のそれぞれの仮想オペレータ足部姿勢である。
また、Kpsfは、所定値(スカラー又は対角行列)の係数、↑Cpsfは所定値の成分を有する定数ベクトルである。この↑Cpsfはゼロベクトルであってもよい。なお、↑θ_sf_aim_L,↑θ_sf_aim_Lのそれぞれと↑θ_opf_act_L,↑θ_opf_act_Rのそれぞれとの間の所定の関係は、例えば、式(71a)又は式(71b)と同様の形態の一次関数により表される関係であってもよい。
次にSTEP42において、スレーブ動作目標決定部131aは、オペレータPの左右の各足部の実オペレータ足部接地反力(仮想床座標系Cvirで見た実オペレータ足部接地反力)と、スレーブ装置1の左右の各足部6L,6Rの実スレーブ足部床反力(スレーブ側グローバル座標系Csで見た実スレーブ足部反力)とが、次式(72a)〜(72d)により示される所定の関係を満たすことを目標として、マスター制御部141から受信したオペレータPの左右の各足部の実オペレータ足部接地反力(観測値)に応じて、スレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部位置姿勢を決定する。
すなわち、スレーブ動作目標決定部131aは、オペレータPの左右の各足部の実オペレータ足部接地反力の観測値から、次式(72a−1)〜(72d−1)によりスレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部床反力を決定する。
↑F_sf_act_L=mtotal_ratio*↑F_opf_act_L ……(72a)
↑F_sf_act_R=mtotal_ratio*↑F_opf_act_R ……(72b)
↑M_sf_act_L=mtotal_ratio*↑F_opf_act_R ……(72c)
↑F_sf_act_L=mtotal_ratio*↑F_opf_act_R ……(72d)
↑F_sf_aim_L=mtotal_ratio*↑F_opf_act_L ……(72a−1)
↑F_sf_aim_R=mtotal_ratio*↑F_opf_act_R ……(72b−1)
↑M_sf_aim_L=mtotal_ratio*↑F_opf_act_R ……(72c−1)
↑F_sf_aim_L=mtotal_ratio*↑F_opf_act_R ……(72d−1)
ここで、↑F_sf_act_L,↑F_sf_act_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの実スレーブ足部床反力のうちの並進力(実スレーブ足部並進力)、↑F_sf_aim_L,↑F_sf_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部床反力のうちの並進力(目標スレーブ足部並進力)である。
また、↑M_sf_act_L,↑M_sf_act_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの実スレーブ足部床反力のうちのモーメント(実スレーブ足部モーメント)、M_sf_aim_L,↑M_sf_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部床反力のうちのモーメント(目標スレーブ足部モーメント)である。
また、↑F_opf_act_L,↑F_opf_ act_Rは、それぞれ、オペレータPの左側及び右側のそれぞれの足部の実オペレータ足部床反力のうちの並進力(実オペレータ足部並進力)、↑M_opf_act_L,↑M_opf_act_Rは、それぞれ、オペレータPの左側及び右側のそれぞれの実オペレータ足部床反力のうちのモーメント(実オペレータ足部モーメント)である。
また、mtotal_ratioは、スレーブ装置101の全体の質量であるスレーブ全質量と、オペレータPの全体の質量であるオペレータ全質量との質量比率(=スレーブ全質量/オペレータ全質量)である。
次に、スレーブ動作目標決定部131aは、STEP43〜45のそれぞれにおいて、目標スレーブ床反力のうちの目標スレーブ足部床反力中心点、目標スレーブ全床反力、及び目標スレーブ全床反力中心点をそれぞれ決定する。
具体的には、STEP43では、スレーブ動作目標決定部131aは、STEP42で決定した目標スレーブ足部床反力(↑F_sf_aim_L,↑F_sf_aim_R,↑M_sf_aim_L,↑M_sf_aim_R)から、スレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部床反力中心点の横方向位置を求める。この場合、各足部106の床反力中心点(COP)は、横方向(スレーブ側グローバル座標系CsのXs軸方向及びYs軸方向)の軸周りのモーメントがゼロになる点である。従って、左右の各足部106L,106Rの目標スレーブ足部床反力中心点の横方向位置は、次式(73a)〜(73d)により算出される。
COP_sf_x_aim_L=M_sf_y_aim_L/F_sf_z_aim_L ……(73a)
COP_sf_x_aim_R=M_sf_y_aim_R/F_sf_z_aim_R ……(73b)
COP_sf_y_aim_L=−M_sf_x_aim_L/F_sf_z_aim_L ……(73c)
COP_sf_y_aim_R=−M_sf_x_aim_R/F_sf_z_aim_R ……(73d)
ここで、COP_sf_x_aim_L,COP_sf_x_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部床反力中心点のXs軸方向の目標位置、COP_sf_y_aim_L,COP_sf_y_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部床反力中心点のYs軸方向の目標位置である。
また、Msf_y_aim_L,Msf_y_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部モーメント↑M_sf_aim_L,↑M_sf_aim_RのYs軸周り方向の成分、Msf_x_aim_L,Msf_x_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部モーメント↑M_sf_aim_L,↑M_sf_aim_RのXs軸周り方向の成分、F_sf_z_aim_L,F_sf_z_aim_Rは、それぞれ、スレーブ装置101の左側及び右側のそれぞれの足部106L,106Rの目標スレーブ足部並進力↑F_sf_aim_L,↑F_sf_aim_RのZs軸方向(上下方向)の成分である。
STEP44では、スレーブ動作目標決定部131aは、STEP42で決定した目標スレーブ足部床反力(↑F_sf_aim_L,↑F_sf_aim_R,↑M_sf_aim_L,↑M_sf_aim_R)から、次式(74a),(74b)により、目標スレーブ全床反力(並進力↑F_sf_total_aim及びモーメント↑M_sf_total_aim)を求める。すなわち、スレーブ動作目標決定部131aは、左右の足部106L,106Rのそれぞれの目標スレーブ足部床反力の合力を目標スレーブ全床反力として求める。なお、↑F_sf_total_aim、↑M_sf_total_aimは、それぞれ、目標スレーブ全床反力並進力、モーメントである。
↑F_sf_total_aim=↑F_sf_aim_L+↑F_sf_aim_R ……(74a)
↑M_sf_total_aim=↑M_sf_aim_L+↑M_sf_aim_R ……(74b)
STEP45では、スレーブ動作目標決定部131aは、STEP44で求めた目標スレーブ全床反力(↑F_sf_total_aim,↑M_sf_total_aim)から、前記STEP43で使用した式(73a)〜(73d)と同様の式である次式(75a),(75b)により、目標スレーブ全床反力中心点の横方向位置を求める。なお、COP_sf_total_x_aim,COP_sf_total_y_aimは、それぞれ、目標スレーブ全床反力中心点のXs軸方向位置、Ys軸方向位置である。
COP_sf_total_x_aim=M_sf_total_y_aim/F_sf_total_z_aim
……(75a)
COP_sf_total_y_aim=−M_sf_total_x_aim_L/F_sf_total_z_aim
……(75b)
次に、STEP46において、スレーブ動作目標決定部131aは、仮想床座標系Cvirで見た仮想オペレータ上体姿勢(向き及び傾き)と、スレーブ側グローバル座標系Csで見た実スレーブ上体姿勢(向き及び傾き)とが、例えば次式(76)により示される所定の関係を満たすことを目標として、マスター制御部141から受信した仮想オペレータ上体姿勢(仮想オペレータ上体向き及び仮想オペレータ上体傾き)に応じて、目標スレーブ上体姿勢を決定する。
すなわち、スレーブ動作目標決定部131aは、仮想オペレータ上体姿勢から、例えば、次式(76−1)により目標スレーブ上体姿勢を決定する。
↑θ_sb_act=↑θ_opb_vir ……(76)
↑θ_sb_aim=↑θ_opb_vir ……(76−1)
ここで、↑θ_sb_actは、実スレーブ上体姿勢、↑θ_sb_aimは、目標スレーブ上体姿勢、↑θ_opb_virは、仮想オペレータ上体姿勢である。なお、↑θ_sb_actと、↑θ_opb_virとの間の所定の関係は、例えば、前記式(71a)又は式(71b)と同様の形態の一次関数により表される関係であってもよい。
次に、STEP47において、スレーブ動作目標決定部131aは、仮想床座標系Cvirで見たマスター装置51の仮想上体支持部高さ(上体支持部65の上下方向位置)と、スレーブ側グローバル座標系Csで見た実スレーブ状態高さ(スレーブ装置101の上体102の上下方向位置)とが、例えば次式(77)により示される所定の関係を満たすことを目標として、マスター制御部141から受信した仮想上体支持部高さに応じて、目標スレーブ上体位置のうちの高さ(目標スレーブ上体高さ)を決定する。
すなわち、スレーブ動作目標決定部131aは、仮想上体支持部高さから次式(77−1)により目標スレーブ上体高さを決定する。
P_sb_z_act=Kpsb_z*P_mb_z_act+Cpsb_z ……(77)
P_sb_z_aim=Kpsb_z*P_mb_z_act+Cpsb_z ……(77−1)
ここで、P_sb_z_actは、実スレーブ上体高さ、P_sb_z_aimは、目標スレーブ上体高さ、P_mb_z_virは、仮想上体支持部高さ、Kpsb_z、Cpsb_zがあらかじめ設定された所定値の定数である。なお、Cpsb_zはゼロであってもよい。
補足すると、マスター制御部141が、実オペレータ上体高さ(オペレータPの上体の実際の高さ)から、仮想オペレータ上体高さP_opb_z_virを求めるように構成されている場合には、仮想オペレータ上体高さP_opb_z_virと、実スレーブ上体高さP_sb_z_actとが、例えば前記式(77)のP_mb_z_virをP_opb_z_virに置き換えた関係を満たすように、P_opb_z_virに応じて目標スレーブ上体高さP_sb_z_aimを決定してもよい。すなわち、式(77−1)のP_mb_z_virをP_opb_z_virに置き換えた式により、目標スレーブ上体高さP_sb_z_aimを決定してもよい。
次に、STEP48において、スレーブ動作目標決定部131aは、上体横方向位置推定部131dにより後述する如く推定される実スレーブ上体横方向位置の最新値を、目標スレーブ上体位置の横方向位置である目標スレーブ上体横方向位置として決定する。すなわち、スレーブ動作目標決定部131aは、実スレーブ上体横方向位置の観測値(最新値)から、次式(78a),(78b)により、目標スレーブ上体横方向位置を決定する。
P_sb_x_aim=P_sb_x_act ……(78a)
P_sb_y_aim=P_sb_y_act ……(78b)
ここで、P_sb_x_aimは、目標スレーブ上体横方向位置のうちのXs軸方向位置、P_sb_y_aimは、目標スレーブ上体横方向位置のうちのYs軸方向位置、P_sb_x_actは、実スレーブ上体横方向位置のうちのXs軸方向位置、P_sb_y_actは、実スレーブ上体横方向位置のうちのYs軸方向位置である。
スレーブ動作目標決定部131aの処理は、以上の如く実行される。従って、本実施形態では、スレーブ装置101の左右の各足部106L,106Rの目標スレーブ足部位置姿勢は、前記式(71a)〜(71d)により示される一定の線形関係を目標として、仮想オペレータ足部位置姿勢に応じて決定される。
また、目標スレーブ上体姿勢及び目標スレーブ上体高さのそれぞれは、前記式(76),(77)により示される一定の線形関係を目標として、仮想オペレータ上体姿勢と、仮想上体支持部高さ(又は仮想オペレータ上体高さ)とに応じて決定される。
一方、目標スレーブ上体横方向位置については、オペレータPの上体や上体支持部65の横方向位置によらずに、実スレーブ上体横方向位置がそのまま目標スレーブ上体横方向位置として決定される。
また、目標スレーブ床反力のうちの左右の各足部106L,106Rの目標スレーブ足部床反力(並進力及びモーメント)は、オペレータPの左右の各足部の実オペレータ足部接地反力に、スレーブ装置101とオペレータPとの質量比率(=スレーブ全質量/オペレータ全質量)で比例するように決定される。そして、目標スレーブ足部床反力中心点、目標スレーブ全床反力、及び目標スレーブ全床反力中心点は、各足部106L,106Rの目標スレーブ足部床反力と所定の必要関係を満たすように決定される。
従って、目標スレーブ上体横方向位置以外の目標スレーブ上体運動と、目標スレーブ脚運動と、目標スレーブ床反力とは、それぞれ、仮想床上に対するオペレータPの上体の実際の運動及びオペレータPの各足部の実際の運動と、オペレータPの各足部に作用する実際の接地反力とのそれぞれと同じパターンで変化するように決定される。
補足すると、本実施形態では、目標スレーブ上体高さP_sb_z_aimを、仮想上体支持部高さP_mb_z_vir(又は仮想オペレータ上体高さP_opb_z_vir)の観測値に応じて決定した。ただし、目標スレーブ上体高さP_sb_z_aimを、例えば、仮想上体支持部高さP_mb_z_vir(又は仮想オペレータ上体高さP_opb_z_vir)によらずに、あらかじめ定めた所定値に設定してもよい。この場合には、仮想上体支持部高さP_mb_z_virt(又は仮想オペレータ上体高さP_opb_z_vir)の観測値をマスター制御部141からスレーブ制御部131に出力(送信)することは不要である。
また、図25のフローチャートでの説明は省略したが、本実施形態では、スレーブ装置101は、上体102に対して可動な腕110及び頭部117を有するので、スレーブ動作目標決定部131aは、各腕110及び頭部117の目標運動も決定する。この場合、オペレータPの操縦によるスレーブ装置101の移動時には、各腕110及び頭部117の目標運動は、例えば、各腕110のハンド部113と頭部117とを上体102に対して一定の位置姿勢に保つように決定され得る。
ただし、例えば、各腕110を、脚103の運動に同期させて、上体102に対して前後に振る等の運動を行わせるように各腕110の目標運動を決定してもよい。また、頭部117を適宜、上体102に対して動かすように該頭部117の目標運動を決定してもよい。また、例えば、オペレータPの各腕や頭部の実際の運動(オペレータPの上体に対する運動)を、オペレータ運動検出器78と同様の検出器により推定し、スレーブ装置101の各腕110や頭部117の目標運動(上体102に対する目標運動)を、オペレータPの各腕や頭部の実際の運動と同様の運動に決定してもよい。
[上体横方向位置推定部の処理]
次に、上体横方向位置推定部131dの処理を説明する。上体横方向位置推定部131dには、図21に示す如く、上体姿勢検出器123で検出された実上体傾きと、スレーブ動作目標決定部131aで決定された目標スレーブ上体位置姿勢のうちの傾き(目標上体傾き)と、横方向位置(目標上体横方向位置)とが逐次入力される。そして、上体横方向位置推定部131dは、これらの入力値を用いて実スレーブ上体横方向位置を推定する。
ここで、スレーブ装置101は、基本的には、スレーブ動作目標決定部131aで決定される目標スレーブ上体位置姿勢及び目標スレーブ足部位置姿勢に概ね従うように動作するが、床面の凹凸状態や、後述するコンプライアンス制御によるも目標スレーブ足部位置姿勢の修正等に起因して、上体102の実際の姿勢のうちの傾きが、目標スレーブ上体傾きに対してずれを生じることがある。そして、上体102の傾きの当該ずれが生じると、上体102の実際の横方向位置が目標スレーブ上体横方向位置に対してずれを生じる。
そこで、上体横方向位置推定部131dは、例えば、次式(79a),(79b)により、実スレーブ上体横方向位置を推定する。
P_sb_x_act=P_sb_x_aim+P_sb_z_act*sin(θ_sb_y_act−θ_sb_y_aim)
……(79a)
P_sb_y_act=P_sb_y_aim−P_sb_z_act*sin(θ_sb_x_act−θ_sb_x_aim)
……(79b)
ここで、P_sb_x_act,P_sb_y_actは、それぞれ、実スレーブ上体横方向位置のうちのXs軸方向位置及びYs軸方向位置の観測値、P_sb_x_aim,P_sb_y_aimは、それぞれ、目標スレーブ上体横方向位置のうちのXs軸方向位置及びYs軸方向位置、P_sb_z_actは、実スレーブ上体高さ、θ_sb_x_aim,θ_sb_y_aimは、それぞれ、目標スレーブ上体傾きのうちのXs軸周り方向の傾き及びYs軸周り方向の傾き、θ_sb_x_act,θ_sb_y_actは、それぞれ、実スレーブ上体傾きのうちのXs軸周り方向の傾き及びYs軸周り方向の傾きの観測値である。
この場合、目標スレーブ上体横方向位置P_sb_x_aim,P_sb_y_aimの値としては、上体横方向位置推定部131dの今回の制御処理の前の制御処理周期でスレーブ動作目標決定部131aにより決定された目標値が用いられる。また、実スレーブ上体傾きθ_sb_x_act,θ_sb_y_actの値としては、前記上体姿勢検出器123による推定値が用いられる。
また、実スレーブ上体高さP_sb_z_actの値としては、例えば、スレーブ装置101の左右の脚103L,103Rのうち、いずれかの接地状態の脚103の各関節の実関節変位の検出値から、運動学の演算により推定してなる推定値が用いられる。なお、両方の脚103L,103Rが接地状態である場合には、例えば、それぞれの脚103L,103R毎に運動学の演算により上体102の高さを推定し、それぞれの脚103L,103R毎の推定値の平均値を、実スレーブ上体高さP_sb_z_actの値として用いてもよい。あるいは、実スレーブ上体高さP_sb_z_actの代わりに、例えば、スレーブ動作目標決定部131aで決定された目標スレーブ上体高さP_sb_z_aimを用いてもよい。
なお、目標スレーブ上体傾きと実スレーブ上体傾きとのYs軸周り方向の偏差(=θ_sb_y_act−θ_sb_y_aim)又はXs軸周り方向の偏差(=θ_sb_x_act−θ_sb_x_aim)の絶対値が十分に小さい場合には、sin(θ_sb_y_act−θ_sb_y_aim)≒θ_sb_y_act−θ_sb_y_aim、又はsin(θ_sb_x_act−θ_sb_x_aim)≒θ_sb_x_act−θ_sb_x_aimという近似関係を用いて、式(79a)又は式(79b)の右辺の演算を行ってもよい。
補足すると、実スレーブ上体横方向位置を推定する手法は、上記の手法に限られない。例えば、前記上体姿勢検出器123の加速度センサ123aにより検出される横方向の並進加速度を積分(2階積分)することにより、実スレーブ上体横方向位置を推定することも可能である。
また、例えば、前記式(79a),(79b)による推定手法と、加速度センサ123aを使用した推定手法とをカルマンフィルタを用いて融合する処理により、実スレーブ上体横方向位置を推定することも可能である。この他、物体の自己位置推定を行い得る様々な公知の手法により、実スレーブ上体横方向位置を推定することが可能である。
[複合コンプライアンス動作決定部の処理]
次に、複合コンプライアンス動作決定部131bの処理を説明する。複合コンプライアンス動作決定部131bには、図21に示す如く、スレーブ動作目標決定部131aで決定された目標スレーブ脚運動(目標スレーブ足部位置姿勢)と、目標スレーブ床反力(目標スレーブ足部床反力、目標スレーブ足部床反力中心点、目標スレーブ全床反力、目標スレーブ全床反力中心点)とが逐次入力される。そして、複合コンプライアンス動作決定部131bは、これらの入力値を用いて、コンプライアンス制御の処理により、目標スレーブ足部位置姿勢を修正することで、修正目標スレーブ脚運動(修正目標スレーブ足部位置姿勢)を決定する。
この複合、複合コンプライアンス動作決定部131bの処理(コンプライアンス制御の処理)は、それを一般化していえば、スレーブ装置101が移動する床面の予期しない凹凸や障害物等に起因して、各足部106に過大な床反力が作用したり、あるいは、スレーブ装置101の全体の姿勢が崩れるのを防止するために、スレーブ装置101に実際に作用する床反力である実スレーブ床反力に係る所要の状態量(所定方向の並進力、所定の軸周り方向のモーメント、各足部106の床反力中心点の位置、全床反力中心点の位置等)を、スレーブ動作目標決定部131aが決定した目標スレーブ床反力等により規定される所要の目標値に近づけるように、スレーブ装置101の全体の目標運動のうちの目標スレーブ足部位置姿勢を修正する処理である。
本実施形態では、かかる複合コンプライアンス動作決定部131bの処理として、例えば、特開平10−277969号公報の段落0123〜0207に説明されている公知の制御処理が実行される。このため、本明細書での複合コンプライアンス動作決定部131bの処理の詳細な説明は省略する。ただし、本実施形態の複合コンプライアンス動作決定部131bの処理では、特開平10−277969号公報に記載されている「補償全床反力モーメントMdmd」はゼロに設定される。
かかる複合コンプライアンス動作決定部131bの処理では、スレーブ装置101の両足部106L,106Rを、目標スレーブ全床反力中心点(換言すれば、目標ZMP)を中心として、Xs軸周り方向及びYs軸周り方向に回転させる動作と、目標スレーブ全床反力中心点を中心として、各足部106L,106RをXs軸周り方向及びYs軸周り方向で、互いに逆向きに並進移動させる動作との複合動作によって、目標スレーブ全床反力中心点周りで発生する実際の床反力のモーメンント(Xs軸周り方向及びYs軸周り方向のモーメント)をゼロに近づけるように、各足部106の目標スレーブ足部位置姿勢(スレーブ動作目標決定部131aにより決定された目標スレーブ足部位置姿勢)が修正される。これにより、各足部106の修正目標スレーブ足部位置姿勢が決定される。
この場合、目標スレーブ足部位置姿勢の修正量は、床反力検出器125により検出される実スレーブ足部床反力の観測値と、スレーブ動作目標決定部131aにより決定された目標スレーブ床反力(目標スレーブ足部床反力、目標スレーブ足部床反力中心点、目標スレーブ全床反力、目標スレーブ全床反力中心点)とを用いて決定される。
[関節変位決定部の処理]
次に、関節変位決定部131cの処理を説明する。関節変位決定部131cには、図21に示す如く、スレーブ動作目標決定部131aで決定された目標スレーブ上体運動(目標スレーブ上体位置姿勢)と、複合コンプライアンス動作決定部131bで決定された修正目標スレーブ脚運動(修正目標スレーブ足部位置姿勢)とが逐次入力される。そして、関節変位決定部131cは、目標スレーブ上体位置姿勢と、各足部106の目標スレーブ足部位置姿勢とから、逆運動学の演算により、スレーブ装置101の各脚103の各関節の目標関節変位を決定する。
また、図21での図示は省略しているが、本実施形態では、関節変位決定部131cには、さらに、スレーブ動作目標決定部131aで決定されたスレーブ装置101の各腕110の目標運動と、頭部117の目標運動とが入力される。そして、関節変位決定部131cは、各腕110の目標運動に応じて各腕110の各関節の目標関節変位を決定すると共に、頭部117の目標運動に応じて、首関節機構118の各関節の目標関節変位を決定する。
この場合、各腕110の目標運動が、例えば各腕110のハンド部113の目標位置姿勢(上体102に対する相対的な目標位置姿勢)である場合には、逆運動学の演算処理により、各腕110の各関節の目標関節変位を決定し得る。また、各腕110の目標運動が、例えば各腕110の各関節の目標関節変位により構成される場合には、該目標関節変位がそのまま各関節の目標関節変位として決定される。このことは、頭部117についても同様である。
スレーブ制御部131の各機能部の制御処理は、以上の如く実行される。そして、スレーブ制御部131は、関節変位決定部131cで決定した各関節の目標関節変位を前記関節制御部132に出力する。また、スレーブ制御部131は、上体横方向位置推定部131dで推定された実スレーブ上体横方向位置を通信装置133を介してマスター制御部141に出力(送信)する。
なお、本実施形態では、目標スレーブ上体横方向位置は、実スレーブ上体横方向位置に一致するように決定されるので、実スレーブ上体横方向位置の観測値をマスター制御部141に出力(送信)する代わりに、目標スレーブ上体横方向位置をマスター制御部141に出力してもよい。
なお、本実施形態では、STEP31で目標上体支持部運動決定部141bが目標上体支持部運動を決定する処理が本発明における第A1処理に相当し、この処理とマスター移動制御部141aの制御処理との全体が本発明における第A処理及び第C処理、第D処理、第E処理に相当する処理を含む。また、スレーブ制御部131の制御処理が本発明における第B処理に相当する。
[作用効果について]
以上説明した本実施液体の操縦システムによれば、第1実施形態に関して図17を参照して説明した如く、オぺレータPは、遊脚側の足部を対応する足部架台70に接地させることをスムーズに行いながら、実際の床上で歩行をしているような感覚で、仮想床面上で歩行動作を行うことができる。
また、第1実施形態に関して図16を参照して説明した如く、上体支持部65の横方向位置(又はマスター基台53の横方向位置)が、基準位置(横方向基準位置)から乖離するのが抑制され、ひいては、オペレータPが継続的な歩行動作を行っても、マスター装置51を移動可能範囲AR_lim内に留まるように移動させることができる。
さらに、上体支持部65の上下方向位置も、上下方向基準位置から乖離しないようにマスター装置51の動作制御が行われるため、スレーブ床形状に応じて、仮想床が階段あるいは傾斜面になるように目標足部架台における足部架台70L,70Rの上下方向位置の差が設定されても、上体支持部65の上下方向位置が上下方向基準位置から大きく変化しないようにしつつ、オペレータPは、階段や傾斜面を上り下りするような感覚で歩行動作を実行できる。
また、第1実施形態に関して図18を参照して説明した如く、前記上体支持部加速度補正量(フィードバック補正量)↑Acc_mb_fbに応じて、マスター基台53、上体支持部65及び足部架台70L,70Rの全体を傾斜させるため、オペレータPは、上体支持部加速度補正量↑Acc_mb_fbが付加されていないような感覚で歩行動作を行うことができる。
さらに、本実施形態では、図26に例示する如く、足部架台70L,70Rのそれぞれが、それぞに対応するスレーブ装置101の足部106の下方のスレーブ床の傾斜に応じて傾斜するので、オペレータPは、スレーブ装置1の各足部106毎にその下方のスレーブ床面の傾きを体感的に認識しつつ、そにれ合わせた態様で歩行動作を行うことができる。
従って、オペレータPは、マスター装置51上で、スレーブ床の床形状に則した形状の仮想床で、実際の床上と同様の形態で歩行動作を実行できる。ひいては、スレーブ装置101をスレーブ床上で所望の態様で移動させることを容易に行うことができる。
さらに、本実施形態では、目標上体支持部横方向位置は、実上体支持部横方向位置(又は実オペレータ上体横方向位置)と、実スレーブ上体横方向位置とが前記(61a),(61b)により表される関係(又は前記(61a),(61b)の左辺を仮想オペレータ横方向位置に置き換えた式により表される関係)を満たすことを目標として決定される。また、スレーブ制御部131のスレーブ動作目標決定部131aの処理では、目標スレーブ上体横方向位置は、上体支持部65、あるいは、オペレータPの上体の横方向位置によらずに、実スレーブ上体横方向位置の観測値に一致するように決定される。
このため、スレーブ装置1の姿勢の崩れが発生した場合、その崩れた姿勢での実スレーブ上体横方向位置に応じて、目標上体支持部横方向位置が決定される。ひいては、オペレータPの上体には、スレーブ装置1の姿勢の崩れに応じた横方向の並進力(オペレータPの姿勢をスレーブ装置1と同様に崩そうとする並進力)が上体支持部65から作用する。例えばスレーブ装置1が、前のめり方向に姿勢を崩した場合には、オペレータPの上体に上体支持部65から前方方向への並進力が作用する。
これにより、オペレータPは、スレーブ装置1が姿勢を崩したことや、その姿勢の崩れがスレーブ装置1のどの向きに生じたのかを、適切かつ迅速に体感的に認識することができる。
[第3実施形態]
次に、本発明の第3実施形態を図27〜図30を参照して説明する。なお、本実施形態は、マスター制御部141及びスレーブ制御部131の一部の制御処理だけが第2実施形態と相違する。このため、本実施形態の説明では、第2実施形態と同一の事項については説明を省略する。
まず、図27を参照して、本実施形態では、マスター制御部141は、実スレーブ上体横方向位置の代わりに、スレーブ制御部131で決定されるスレーブ装置101の上体102の目標上体運動のうちの目標スレーブ上体横方向位置を通信装置142を介して受信する。なお、目標スレーブ上体位置姿勢は、第21実施形態と異なる処理(詳細は後述する)により決定される。
そして、マスター制御部141の目標上体支持部運動決定部141b2は、本実施形態では、目標上体支持部運動のうちの目標上体支持部横方向位置を、スレーブ制御部131から受信した目標スレーブ上体横方向位置に応じて決定する。具体的には、目標上体支持部運動決定部141b2は、目標上体支持部横方向位置が、目標スレーブ上体横方向位置に対して前記式(71a),(71b)と同じ関係を満たすように目標上体支持部横方向位置を決定する。すなわち、目標上体支持部運動決定部141b2は、次式(71a−2),(71b−2)により目標上体支持部横方向位置(P_mb_x_aim,P_mb_y_aim)を決定する。
P_mb_x_aim=Kpmb*P_sb_x_aim+Cpmb_x ……(71a−2)
P_mb_y_aim=Kpmb*P_sb_y_aim+Cpmb_y ……(71b−2)
本実施形態では、マスター制御部141の制御処理は、以上説明した事項以外は第2実施形態と同じである。
次に、図28を参照して、本実施形態では、スレーブ制御部131は、第2実施形態のスレーブ動作目標決定部131aと異なる処理(スレーブ装置101の動力学モデルを使用する処理)によりスレーブ装置101の動作目標(目標スレーブ上体運動、目標スレーブ脚運動及び目標スレーブ床反力)を決定するスレーブ動作目標決定部131a2と、スレーブ動作目標決定部131a2で用いる動力学モデル上でスレーブ装置101に仮想的に作用させる仮想外力を決定する仮想外力決定部131fと、スレーブ装置101に付加的に作用させるべき床反力を決定する補償床反力決定部131hと、該仮想外力決定部131f及び補償床反力決定部131hに対する入力を算出する演算部131gと、第1実施形態で説明した複合コンプライアンス動作決定部131b及び関節変位決定部131cとを備える。
そして、本実施形態では、スレーブ制御部131は、実スレーブ上体横方向位置の推定値の代わりに、スレーブ動作目標決定部131a2で決定される目標スレーブ上体運動のうちの目標スレーブ上体横方向位置を、通信装置133を介してマスター制御部141に送信する。このため、本実施形態のスレーブ制御部131では、第1実施形態で説明した上体横方向位置推定部131dが省略されている。
前記演算部131g、仮想外力決定部131f、スレーブ動作目標決定部131a2、及び補償床反力決定部131hの処理を以下に具体的に説明する。これらの処理は、所定の制御処理周期で次のように実行される。演算部131gには、上体姿勢検出器123で推定された実スレーブ上体傾きと、スレーブ動作目標決定部131a2で決定された目標スレーブ上体運動のうちの目標スレーブ上体傾きとが入力される。そして、演算部131gは、実スレーブ上体傾きと目標スレーブ上体傾きとの偏差(=実スレーブ上体傾き−目標スレーブ上体傾き)である上体傾き偏差を算出する。該上体傾き偏差は、スレーブ側グローバル座標系CsのXs軸周り方向の傾き偏差と、Ys軸周り方向の傾き偏差とから構成される。
仮想外力決定部131fには、演算部131gで算出された上体傾き偏差が入力される。そして、仮想外力決定部131fは、入力された上体傾き偏差から、公知のフィードバック制御則(例えばP則、PD則、PID則等)により、該上体傾き偏差をゼロに収束させるように仮想外力を決定する。
ここで、本実施形態では、上記仮想外力は、例えば目標スレーブ全床反力中心周りで横方向の軸周り方向(Xs軸周り方向及びYs軸周り方向)に発生するモーメントであり、以降、仮想外力モーメントという。そして、仮想外力モーントのXs軸周り方向の成分及びYs軸周り方向の成分のそれぞれが、上体傾き偏差のXs軸周り方向の成分及びYs軸周り方向の成分のそれぞれからフィードバック制御則により決定される。
スレーブ動作目標決定部131a2には、第2実施形態と同様に、スレーブ制御部131がマスター制御部141から受信した指令情報(仮想オペレータ上体姿勢(向き、傾き)、仮想上体支持部高さ(又は仮想オペレータ上体高さ)、仮想オペレータ足部位置姿勢、及び実オペレータ足部床反力のそれぞれの観測値)が入力される。また、本実施形態では、スレーブ動作目標決定部131a2には、実スレーブ上体横方向位置の代わりに、仮想外力決定部131fで決定された仮想外力モーメントが入力される。
そして、スレーブ動作目標決定部131a2は、図29のフローチャートに示す処理を所定の制御処理周期で実行する。この場合、スレーブ動作目標決定部131a2は、STEP41〜47で第2実施形態のスレーブ動作目標決定部131aと同じ処理を実行する。これにより、目標スレーブ上体横方向位置以外の目標スレーブ上体運動と、目標スレーブ脚運動と、目標スレーブ床反力とが決定される。
次いで、STEP48aにおいて、スレーブ動作目標決定部131a2は、スレーブ装置101の動力学モデル上で、目標スレーブ全床反力中心点(目標ZMP)の周りに、仮想外力決定部131fで決定された仮想外力モーメントを発生させるように、目標スレーブ上体横方向位置を決定する。
スレーブ装置101の動力学モデルとしては、例えば特許第4246638号の段落0128〜0134及び図10に説明されている動力学モデル、あるいは、例えば特許第4126061号公報の段落0163〜0168及び図12に説明されている動力学モデル、あるいは、これらに類似する動力学モデル等を使用し得る。図30は、本実施形態で使用する一例の動力学モデルを模式的に示している。なお、該動力学モデルは、特許第4246638号で説明されているものと同じである。
この動力学モデルは、スレーブ装置101の上体102の並進運動に応じて並進移動する質点である上体質点Q1と、各脚103の足部106の並進運動に応じて並進移動する質点である脚質点Q2と、スレーブ装置101のロール方向(前後方向の軸周り方向)での上体102の傾きの運動に応じてロール方向に回転するフライホイールFH1と、スレーブ装置101のピッチ方向(左右方向の軸周り方向)での上体102の傾きの運動に応じてピッチ方向に回転するフライホイールFH2とを有する。
上体質点Q1および各脚質点Q2には、質量があらかじめ定義され、フライホイールFH1,FH2には、イナーシャが定義されている。この場合、上体質点Q1の質量と、2つの脚質点Q2,Q2のそれぞれの質量とは、その総和の質量がスレーブ装置101の全体の質量に一致するように設定される。また、上体質点Q1の位置は、上体102の位置(又は位置及び姿勢)に応じて規定され、各脚質点Q2の位置は、各脚103の足部106の位置(又は位置及び姿勢)に応じて規定される。なお、フライホイールFH1,FH2は、質量を持たない。
この動力学モデルでのスレーブ装置101の動力学は、上体質点Q1及び各脚質点Q2のそれぞれの並進加速度に応じて発生する慣性力(並進慣性力)と、上体質点Q1及び各脚質点Q2のそれぞれに作用する重力との全体の合力(並進力)が、スレーブ装置101に作用する全床反力のうちの並進力に釣り合うという関係を表す方程式、並びに、上記合力と、フライホイールFH1,FH2のそれぞれの回転角加速度に応じて発生する慣性力モーメントとによって、任意の作用点(例えば目標スレーブ全床反力中心点等)の周りに発生する全体のモーメントが、スレーブ装置101に作用する全床反力によって、該作用点の周りに発生するモーメントに釣り合うという関係を表す方程式とにより表現される。
この場合、STEP48aの処理は、例えば次のように実行され得る。なお、ここでの説明では、スレーブ側グローバル座標系Csは、説明の便宜上、例えばそのXs軸方向がスレーブ装置101の前後方向と同方向もしくはほぼ同方向になるように(スレーブ側グローバル座標系CsのXs軸周り方向及びYs軸周り方向が、それぞれ図30に示す如く、スレーブ装置101のロール方向、ピッチ方向になるように)、適宜、該Xs軸方向の向きが更新されているものとする。ただし、スレーブ側グローバル座標系Csと、スレーブ装置101の前後方向に座標軸方向を合わせた座標系との間の座標変換を適宜行うことも可能である。
目標スレーブ上体傾きの時系列に基づいて、動力学モデルのフライホイールFH1,FH2のそれぞれの回転角加速度が算出され、該回転角加速度に応じてフライホイールFH1,FH2が発生する慣性力モーメント(Xs軸周り方向及びYs軸周り方向の慣性力モーメント)である上体傾き対応モーメントが算出される。
また、スレーブ装置101の各足部106の目標スレーブ足部位置姿勢の時系列に基づいて、動力学モデルの各脚質点Q2の並進加速度が算出され、該並進加速度に応じて各脚質点Q2が発生する慣性力と、各脚質点Q2に作用する重力との合力によって目標スレーブ全床反力中止点周りに発生するモーメントである脚運動対応モーメントが算出される。
また、目標スレーブ上体高さの時系列に基づいて、動力学モデルの上体質点Q1の上下方向(Zs軸方向)の並進加速度が算出される。なお、上体質点Q1の上下方向の並進加速度は、例えば、該並進加速度に応じて上体質点Q1が発生する上下方向の慣性力と、目標スレーブ足部位置姿勢の時系列から算出される各脚質点Q2の上下方向の並進加速度に応じて各脚質点Q2が発生する上下方向の慣性力と、スレーブ装置101の全体重心に作用する重力との合力が、目標スレーブ全床反力の上下方向の並進力に釣り合うように算出してもよい。
そして、上体質点Q1の横方向の並進加速度を未知数として、該上体質点の横方向の並進加速度と、該上体質点Q1の上下方向の並進加速度とに応じて発生する慣性力と、該上体質点Q1に作用する重力との合力とによって目標スレーブ全床反力中心点周りに発生するモーメントである上体運動対応モーメンントと、上記上体傾き対応モーメントと、上記脚運動対応モーメントとの合力モーメントのうちのXs軸周り方向及びYs軸周り方向の成分が、仮想外力決定部131fで決定された仮想外力モーメントに一致するという条件を満たし得るように、上体質点Q1の横方向の並進加速度が算出される。
そして、上体質点Q1の横方向の並進加速度を積分(2階積分)することにより、上体質点の横方向位置が決定され、さらに該上体質点Q1の横方向位置から目標スレーブ上体横方向位置が決定される。
STEP48aでは、以上説明した処理により、動力学モデル上で、目標スレーブ全床反力中心点(目標ZMP)の周りで、仮想外力決定部131fで決定された仮想外力モーメントが発生するように(詳しくは、スレーブ装置1の運動によって発生する慣性力とスレーブ装置101に作用する重力との合力によって、目標スレーブ全床反力中心点(目標ZMP)の周りに発生するモーメントが仮想外力モーメントに一致するように)、目標スレーブ上体横方向位置が決定される。該、目標スレーブ上体横方向位置は、結果的に実スレーブ上体横方向位置に近づいていくように決定される。
次に、補償床反力決定部131hは、本実施形態では、上体姿勢検出器123により推定される実スレーブ上体傾きが、スレーブ動作目標決定部131a2で決定された目標スレーブ上体傾きからずれた場合に、そのずれを低減し得るように、スレーブ装置101に付加的に作用させるべき床反力を決定する処理部である。
本実施形態では、スレーブ装置101に付加的に作用させるべき床反力は、目標全床反力中心点(目標ZMP)周りで横方向の軸周り方向(Xs軸周り方向及びYs軸周り方向)に発生させるモーメントである。そこで、本実施形態においても、補償床反力決定部131hが決定する床反力を補償全床案力モーメントと称する。
本実施形態の補償床反力決定部131hには、前記演算部131gで算出される上体傾き偏差が、スレーブ動作目標決定部131a2で決定された目標スレーブ上体傾きに対する実スレーブ上体傾きのずれ量として入力される。そして、補償床反力決定部131hは、入力された上体傾き偏差に応じて、比例・微分則(PD則)等のフィードバック制御則により上体傾き偏差をゼロに収束させるように、補償全床反力モーメント(Xs軸周り方向及びYs軸周り方向の補償全床反力モーメント)を決定する。
そして、補償床反力決定部131hが決定した補償全床反力モーメントが複合コンプライアンス動作決定部131bに入力される。該複合コンプライアンス動作決定部131bでは、目標スレーブ全床反力中心点周りで発生する実際の床反力のモーメント(Xs軸周り方向及びYs軸周り方向のモーメント)を補償全床反力モーメントに近づけるように、各足部106の目標スレーブ足部位置姿勢(スレーブ動作目標決定部131a2により決定された目標スレーブ足部位置姿勢)が修正される。
本実施形態は、以上説明した事項以外は、前記第2実施形態と同じである。補足すると、本実施形態では、マスター制御部141及びスレーブ制御部131の両方が本発明における制御装置に相当する。
以上説明した実施形態によれば、前記第2実施形態と同様の効果を奏することができる。
[他の実施形態]
本発明は、以上説明した実施形態に限定されるものではなく、さらに他の実施形態を採用することもできる。以下に、他の実施形態をいくつか説明する。前記各実施形態では、マスター装置51の各足部架台70の傾斜姿勢と上下方向位置との両方ををスレーブ床形状に応じて変化させるようにしたが、各足部架台70の傾斜姿勢と上下方向位置とのうちのいずれか一方だけをスレーブ床の床形状に応変化させるようにしてもよい。
また、前記各実施形態では、遊脚側足部架台70のヨー方向の姿勢角(向き)をオペレータPの足部のヨー方向の向きに応じて変化させるようにしたが、各足部架台70をヨー方向に回転させることを行わず、あるいは、該足部架台70をヨー方向に回転できないように基台53に搭載してもよい。そして、この場合、オペレータPの足部のヨー方向の向きによらずに、該足部を足部架台70に容易に接地させ得るように、各足部架台70を円板状に形成したり、あるいは、オペレータPの足部の底面よりも十分に広めの面積を有するように構成してもよい。
さらに、前記各実施形態では、上体支持部65(又はマスター基台53)のヨー歩行の向きが所定の基準向きから乖離するのを抑制する処理を省略したり、マスター基台53の傾斜姿勢を変化させる処理を省略してもよい。また、スレーブ床が高さ変化が比較的小さい床である場合には、上体支持部65の上下方向位置が所定の上下方向基準位置から乖離するのを抑制する処理を省略してもよい。さらに、マスター装置51の移動環境が十分に広い場合には、上体支持部65(又はマスター基台53)の横方向位置が所定の横方向基準位置から乖離するのを抑制する処理を省略してもよい。
また、前記第1実施形態では、上体側バラテラル制御の処理により目標上体支持部運動及び目標スレーブ上体運動を決定したが、例えば、式(1a),(1b)における係数Ratio_fsb,Ratio_msbをいずれもゼロに一致させた式を用いて、目標上体支持部運動及び目標スレーブ上体運動を決定してもよい。また、例えば、目標上体支持部運動を、実上体支持部反力の観測値に応じて決定し、該目標上体支持部運動に対して所定の目標関係を満たすようにスレーブ装置1の目標運動を決定してもよい。
また、第2実施形態及び第3実施形態では、本発明におけるマスター側基準部横方向位置として、上体支持部65の横方向位置もしくはオペレータPの上体の横方向位置を使用し、本発明におけるスレーブ側基準部横方向位置として、スレーブ装置1の上体102の横方向位置を採用した場合について例示した。
ただし、例えば、マスター側基準部横方向位置として、オペレータPの重心の横方向位置であるオペレータ重心横方向位置を採用し、また、スレーブ側基準部横方向位置として、スレーブ装置101の重心の横方向位置であるスレーブ重心横方向位置を採用してもよい。そして、実際のオペレータ重心横方向位置と、実際のスレーブ重心横方向位置との間の関係が、例えば前記式(61a),(61b)と同様の形態の関係を満たすことを目標として、スレーブ重心横方向位置の観測値又は目標値に応じてマスター装置51の移動制御を行うようにしてもよい。
この場合、実際のスレーブ重心横方向位置は、例えば、スレーブ装置101の上体102等のいずれかの部位の位置姿勢(スレーブ側グローバル座標系Csで見た位置姿勢)をモーションキャブチャ等の公知の手法により推定し、その推定した位置姿勢と、スレーブ装置101の各関節の実関節変位の観測値と、スレーブ装置ー101の剛体リンクモデルとを用いて推定することができる。また、スレーブ重心横方向位置の目標値は、例えば、目標スレーブ上体運動及び目標スレーブ脚運動を含むスレーブ装置1の全体の目標運動と、スレーブ装置1の剛体リンクモデルとを用いて算出することができる。
また、実際のオペレータ重心横方向位置は、例えば、オペレータPの上体等のいずれかの部位の位置姿勢(マスター側グローバル座標系Cgmで見た位置姿勢)と、各関節の曲げ角とをモーションキャブチャ等の公知の手法により推定し、その推定した位置姿勢及び曲げ角の観測値と、オペレータPの剛体リンクモデルとを用いて推定することができる。なお、オペレータPの各関節又は一部の関節の曲げ角は、オペレータPに装着した変位センサ又は慣性センサ(加速度センサ及び角速度センサ)により検出してもよい。
また、本発明における移動体(スレーブ装置)は、実体を有する移動体に限らず、仮想的な(ヴァーチャルの)移動体であってもよい。