5. RUI と複合現実感技術
5.7. 複合現実感技術を用いた RUI の視覚情報の拡張
5.7.2. 形状・外観情報の拡張
RUIを含む通常のロボットやCGによるキャラクタの形状・外観情報に関してまとめる と表 5.1のようになる.
ロボットは物理的に存在しており,その存在自体が情報を発信していると考えられる.
しかし,その形状・外観といった視覚情報は物理的に固定されている.その情報を変更す る場合は,物理的に機構を変更するか別の外装を用意して変更する必要がある.
CG を用いたモデルでは,ディスプレイやプロジェクタによって人に情報が提示される が,コンピュータ内で色や形状などの異なるCGモデルを用意し,変更するだけで,その CGモデルの形状・外観情報を変更することができる.
これらに対し本研究ではロボットとMixed Reality技術を組み合わせることで,ロボット の形状・外観情報を容易に変更するシステムを提案する.情報世界にRUIと形状を同期さ せたCGモデルを用意し,RUIを捉える映像においてCGモデルをRUIに重畳させる.こ のようにRUIに対してCGによる外装(MR外装)を着させることで,物理的な外装の変 更が不要となる.形状や色の異なる複数のCGモデルを用意して,重畳するCGモデルの 変更を行うことで,容易に視覚情報を変更できる.物理的な外装では不可能であるRUIの 表情や大きさに関しても,MR外装を利用することで瞬時に変更することも可能となる.
表 5.1 ロボットから得られる視覚情報(形状・外観)
ロボット CG モデル ロボット +Mixed Reality
提示方法 現実に存在 ディスプレイ・
プロジェクタ等
ロボットに CGモデルを重畳 視覚情報 物理的に固定 動的に変更可 動的に変更可
視覚情報の変更 △ ◎ ○
変更手段 外装や機構を 物理的に変更
形状・色等の異なる CGモデルを用意して
変更
重畳する複数の CGモデルを用意して
変更
5.7.2.1. システム構成
このシステムにおけるMR RUIの構成は以下のようになっている.RUIとしてはKHR-1
(近藤科学社)を使用する.このKHR-1は首に1自由度,腕に各3自由度,足に各5自由 度の合計17 自由度を持つ人型ロボットである.KHR-1 のコントローラボードを通じるこ とで,PCとKHR-1の間において各関節のサーボモータの角度の取得と動作の指示が可能 となっている.
図 5.11 KHR-1(近藤科学社)
また,MR 技術としては,カメラで人工的なマーカーを認識して 3D オブジェクトをビ デオ映像にオーバーレイ表示する ARToolKit を利用する.ARToolKitでは,処理はカメラ
数のCGモデルと,各CGモデルに対応するマーカーを用意し,マーカーとCGモデルと を対応付ける.そして,マーカーをKHR-1に貼り付けてカメラでKHR-1を撮影し,その ビデオ映像に対してARToolKitを用いてKHR-1上にCGモデルを重畳する.このCGモデ
ルをKHR-1の各関節情報に従って動作させ同期させることにより,実世界のRUI に対し
てCGの外装を着させることが可能となる.
図 5.12 MR外装システム構成
図 5.13 RUIに対する視覚情報の重畳
図 5.13 が MR 外装の一例である.図の上段にあるように「茶」と「白」という文字が 書かれたマーカーを用意し,それぞれを図の中段にあるようにKHR-1の胸に貼り付ける.
カメラ通じて胸にマーカーが貼り付けられたKHR-1を見ると,図下段にあるように「茶」
のマーカーであれば茶色の毛皮の熊の外観となり,「白」のマーカーであれば,白色の毛皮 の熊の外観となる.このように,マーカーを変更することで瞬時にロボットの外観が変更 可能となる.
5.7.2.2. MR外装のズレ補正
提案したRUIに対する視覚情報重畳システムを実装したところ,図 5.14 のように実際 のRUIとRUIに重ね合わせたCGモデルの表示との間にズレが生じた.ズレが生じた要因 は本システムの処理の流れにある.
このMR外装のシステムの処理の流れは次のようになる.まずカメラからの画像を取得 し,画像内のマーカーを検出すると,その位置計測等のマーカー関連の処理を行い,その 後にマーカー上に CG モデルを重畳したものを画面に表示する.CG モデルの各関節角度 に関してはKHR-1から取得した関節角度情報を用いて変更を行う.
この時,KHR-1からのリアルタイムの関節情報を用いると KHR-1 本体と CGモデルと の表示の間にズレが生じてしまう.図 5.14はKHR-1の右腕を画面上下方向に自動で振る ように指示を行ったものであるが,KHR-1本体の腕がCGモデルの腕に隠れずに表示され てしまっている.
処理の関係上,カメラ画像を取得してからCG画像を重畳して表示するまでの時間差と,
カメラ画像を取得する時間とRUIの関節角度を取得する時間差が存在している.これら二 つの時間差の結果として,若干過去のKHR-1の映像に対して現在のKHR-1本体の関節角 度に従ったCGモデルが重畳されるために,このようなズレが生じてしまう.
RUIとCGモデルの表示のズレを無くす方法としては,まず以下の二つが考えられる.
[補正法1] 実際のRUIのパーツに対して,ある程度拡大したCGモデルを用意し,表示の
ズレをCGで覆うように重畳させる.
[補正法2] カメラ画像取得と関節角取得に関しての時間差に従い,重畳するCGモデルの
関節角度を補正する.
補正法1は,リアルタイムにCGモデルとRUIとで形状同期を行わせられるので,人が 手でRUIを操作する場合において,手から得られるRUIの形状と重畳するCGモデルから 得られる視覚情報が一致するため,違和感を与えない方法であると考えられる.しかし,
CG モデルの拡大にも限度があり,RUI の腕をある一定速度以上に早く動かしてしまうと CGモデルでRUIを隠しきれずにズレが生じてしまう.
補正法2は,RUIに対して人が触れずに視覚提示装置として使用する場合は,最終的に ユーザに対して提示される画面において整合性が取れていれば良く,その際には適した方 法であると考えられる.しかし,リアルタイム性が損なわれているため,ユーザが手でRUI を操作する場合には違和感を覚える可能性がある.
このように,要求するシステムにおいてそれぞれの補正法を使い分ける必要がある.
5.7.2.3. 補正法1
補正法1に関して詳しく説明する.
図 5.15 RUIとCGモデルの遮蔽関係(補正法1)
図 5.15は,RUI の腕を水平方向から上方向へ回転した場合に,現在のRUIの関節角度 に従って拡大したCGモデルの腕を重畳し,遅延画像内のRUIの腕が隠れている状態であ る.これ以上CGモデルの腕が回転している場合やCGモデルの拡大率が低い場合には,
RUIの腕が見えてしまうことになりMR外装とRUIとでズレが生じてしまう.
これより,実際のRUIに対するCGモデルの拡大率や,RUIの腕の角速度,カメラ画像 取得から描画までの時間には相関があると考えられる.
RUIの腕の幅をa,CGモデルの腕の幅をb,RUIの腕の回転中心から先端までの長さを
r
,腕の回転の角速度をω
,CG モデルの腕の回転角度をθ
とする.また,カメラ画像取 得から描画にかかる時間をdt,RUIの腕の幅に対するCGモデルの腕の幅の拡大率をsと する.この時成り立つ関係式は以下のようになる.2 ) cos(
) 2
tan( b a
r = −
θ θ
(5.1)×dt
=
ω
θ
(5.2)s a
b= × (5.3)
式(5.1)~(5.3)より,CGモデルが遅延画像内のRUI の腕を隠すことの出来る条件式は式 (5.4)のようになる.
as dt a
dt
r sin( ) + cos( ) ≤
2 ω ω
(5.4)実装したシステムにおいてdtを求め,その値を元にCGモデルの拡大率sと許容可能な 最大の角速度
ω
を設定する実験を行った.実験に用いたPCの仕様は,CPU: Pentium M 1.5GHZ,メモリ:768MB,グラフィックアクセラレータ:ATI Mobility Radeon 9600,であ る.そして,USBカメラ:WCAMNBU(クリエイティブメディア株式会社)にて,640×480のカラー画像を30fpsでキャプチャを行うように設定した.この結果,dt =29.5[ms]
という値が得られた.また,システム実行時のカメラのキャプチャのフレームレートは平
均 21~22[fps],描画のフレームレートは平均 24~25[fps]であった.RUI に用いた KHR-1
の腕の幅aは20[mm],RUIの腕の回転中心から先端までの長さ
r
は130[mm]であり,これらの値を用いて,本システムにおける拡大率sと角速度
ω
の最大値の関係を求めると表 5.2のようになる.表 5.2 拡大率sと角速度
ω
の関係s 1.00 1.20 1.40 1.60 1.80 2.00
ω
[rad/s] 0.0 0.52 1.04 1.56 2.09 2.62RUIで行うタスクによって,人が入力時にRUIの腕を動かす速度や,出力時にRUI自身 が動作する速度に対して要求される値は異なる.この要求される速度に応じてCGモデル の拡大率を設定すればよく,逆に,CG モデルのサイズが先に要求される場合は,そのサ イズに応じた速度以下で関節が動くように制御を行うことで,RUI の腕に対して常に CG
5.7.2.4. 補正法2
補正法2に関して詳しく説明する.
図 5.16 RUIとCGモデルのズレ
図 5.16は,画像内のRUIに対して,取得したRUIの最新の関節角度を用いてCGモデ ルを描画した場合を表す.カメラ画像取得とRUIの関節角度取得に関して時間差が生じる ため図のように RUI と CGモデルとで角度のズレが生じてしまう.この補正角度θadjustを 考慮し,重畳するCGモデルの角度を補正することで,視覚的にはRUIとCGモデル間で のズレを補正することができる.
重畳するCGモデルの関節角度
θ
drawは以下のように求めることが出来る.取得したRUIの最新の関節角度をθget,RUIの関節角速度を
ω
,カメラ画像取得とRUI の関節角度取得の時間差をdtとすると以下の式が成り立つ.adjust
= ω × dt
θ
(5.5)adjust get
draw
θ θ
θ = −
(5.6)式(5.5),(5.6)より補正後のCGモデルの描画用関節角度は式(5.7)となる.
get
dt
draw
= θ − ω ×
θ
(5.7)この得られた描画用関節角度を用いてCGモデルを描画することで,提示する視覚情報 においてのズレを補正することが出来る.