TOP > 国内特許検索 > ロボット制御システム、機械制御システム、ロボット制御方法、機械制御方法、および記録媒体 > 明細書

明細書 :ロボット制御システム、機械制御システム、ロボット制御方法、機械制御方法、および記録媒体

発行国 日本国特許庁(JP)
公報種別 再公表特許(A1)
発行日 令和元年10月17日(2019.10.17)
発明の名称または考案の名称 ロボット制御システム、機械制御システム、ロボット制御方法、機械制御方法、および記録媒体
国際特許分類 G06T  19/00        (2011.01)
B25J   9/22        (2006.01)
FI G06T 19/00 300A
B25J 9/22 A
国際予備審査の請求
全頁数 50
出願番号 特願2018-552962 (P2018-552962)
国際出願番号 PCT/JP2017/042155
国際公開番号 WO2018/097223
国際出願日 平成29年11月24日(2017.11.24)
国際公開日 平成30年5月31日(2018.5.31)
優先権出願番号 2016227546
優先日 平成28年11月24日(2016.11.24)
優先権主張国 日本国(JP)
指定国 AP(BW , GH , GM , KE , LR , LS , MW , MZ , NA , RW , SD , SL , ST , SZ , TZ , UG , ZM , ZW) , EA(AM , AZ , BY , KG , KZ , RU , TJ , TM) , EP(AL , AT , BE , BG , CH , CY , CZ , DE , DK , EE , ES , FI , FR , GB , GR , HR , HU , IE , IS , IT , LT , LU , LV , MC , MK , MT , NL , NO , PL , PT , RO , RS , SE , SI , SK , SM , TR) , OA(BF , BJ , CF , CG , CI , CM , GA , GN , GQ , GW , KM , ML , MR , NE , SN , TD , TG) , AE , AG , AL , AM , AO , AT , AU , AZ , BA , BB , BG , BH , BN , BR , BW , BY , BZ , CA , CH , CL , CN , CO , CR , CU , CZ , DE , DJ , DK , DM , DO , DZ , EC , EE , EG , ES , FI , GB , GD , GE , GH , GM , GT , HN , HR , HU , ID , IL , IN , IR , IS , JO , JP , KE , KG , KH , KN , KP , KR , KW , KZ , LA , LC , LK , LR , LS , LU , LY , MA , MD , ME , MG , MK , MN , MW , MX , MY , MZ , NA , NG , NI , NO , NZ , OM , PA , PE , PG , PH , PL , PT , QA , RO , RS , RU , RW , SA , SC , SD , SE , SG , SK , SL , SM , ST , SV , SY , TH , TJ , TM , TN , TR , TT
発明者または考案者 【氏名】松野 文俊
【氏名】村田 諒介
【氏名】遠藤 孝浩
出願人 【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
個別代理人の代理人 【識別番号】100125117、【弁理士】、【氏名又は名称】坂田 泰弘
【識別番号】100086933、【弁理士】、【氏名又は名称】久保 幸雄
審査請求 未請求
テーマコード 3C707
5B050
Fターム 3C707CS08
3C707JS03
3C707JT10
3C707JU03
3C707JU12
3C707JU14
3C707WA16
5B050BA09
5B050BA11
5B050CA08
5B050EA05
5B050EA07
5B050EA27
5B050FA02
5B050FA06
要約 オペレーションコンピュータは、第一の空間にいるオペレータがロボットの存在する第二の空間に居るならばオペレータの視界に現われる様子を表わす視界画像をヘッドマウントディスプレイのようなディスプレイに表示させる。そして、オペレータの動作に応じてタスクを行うようにロボットを制御する。
特許請求の範囲 【請求項1】
ディスプレイに表示された画像をオペレータに見せながら、タスクを実行するようロボットを制御するロボット制御システムであって、
前記オペレータが前記ロボットの存在する空間に居るならば前記オペレータの視界に現われる様子を表わす視界画像を前記ディスプレイに表示させる表示手段と、
前記オペレータの動きに応じたタスクを前記ロボットに実行させるための制御命令を生成し、前記ロボットに送信する制御手段と、
を有するロボット制御システム。
【請求項2】
前記ロボットは、物体を取り扱う第一の部位を有し、
前記オペレータは、第二の部位を有し、
前記制御手段は、前記第二の部位の動きに基づいて前記第一の部位を動かす命令を前記制御命令として生成し前記ロボットに送信する、
請求項1に記載のロボット制御システム。
【請求項3】
前記制御手段は、前記オペレータが前記第二の部位を動かした際に、前記オペレータが前記空間に居るならば前記第二の部位が前記空間の中で動く軌跡に合わせて前記第一の部位が動くように前記ロボットを制御する、
請求項2に記載のロボット制御システム。
【請求項4】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記表示手段は、前記空間を仮想的に再現した仮想空間の中に前記オペレータの動きに合わせて動くアバターを配置し、前記アバターの目から視線方向に見える様子を表わす画像を前記視界画像として前記ディスプレイに表示させる、
請求項2または請求項3に記載のロボット制御システム。
【請求項5】
前記表示手段は、前記オペレータを計測することによって求められた三次元形状および前記ロボットに設けられた計測装置によって得られたデータに基づいて求められた三次元形状を用いて前記アバターを前記空間に配置する、
請求項4に記載のロボット制御システム。
【請求項6】
前記オペレータが足踏みするのに伴って前記ロボットを移動させる第二の制御手段、を有し、
前記表示手段は、前記ロボットが前記仮想空間において再現される位置に前記アバターを配置し、前記視界画像を前記ディスプレイに表示させる、
請求項4または請求項5に記載のロボット制御システム。
【請求項7】
前記表示手段は、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記視界画像を前記ディスプレイに表示させる、
請求項6に記載のロボット制御システム。
【請求項8】
前記表示手段は、特定のコマンドが入力されまたは前記ロボットに特定のイベントが生じた場合に、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記アバターを前記位置の近傍に配置し直し、前記視界画像を前記ディスプレイに表示させる、
請求項6に記載のロボット制御システム。
【請求項9】
前記アバターが配置し直された後に前記オペレータが動作を行った場合に、前記オペレータと前記ロボットとの位置関係が前記アバターと前記仮想ロボットとの位置関係と同じであるならば前記動作によって前記ロボットに生じる変化が起きるように前記ロボットを制御する、第三の制御手段、を有する、
請求項8に記載のロボット制御システム。
【請求項10】
前記ロボットが前記物体に触れまたは前記空間の中の障害物に干渉した場合に、前記物体に触れたことまたは前記障害物に干渉したことを、力覚、触覚、または聴覚を前記オペレータを与えることによって知らせる報知手段、を有する、
請求項2ないし請求項9のいずれかに記載のロボット制御システム。
【請求項11】
前記第一の部位によって前記物体を前記オペレータの所望する通りに取り扱うことができない場合に他のロボットと協同して当該物体を取り扱うための処理を行う協同手段、を有する、
請求項2ないし請求項10のいずれかに記載のロボット制御システム。
【請求項12】
前記表示手段は、前記オペレータの動きに応じたタスクを行うように前記アバターを動かしながら前記視界画像を前記ディスプレイに表示させる、
請求項4ないし請求項9のいずれかに記載のロボット制御システム。
【請求項13】
機械を制御する機械制御システムであって、
オペレータが前記機械の存在する空間の中の前記機械の近傍の位置に居るならば前記オペレータの視界に現われる様子を表わす視界画像をディスプレイに表示させる表示手段と、
前記オペレータが動作を行った場合に、前記オペレータが前記空間の中の前記位置に居るならば前記動作によって前記機械に生じる変化が起きるように前記機械を制御する、制御手段と、
を有する機械制御システム。
【請求項14】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記機械は、パワーアシストスーツである、
請求項13に記載の機械制御システム。
【請求項15】
ディスプレイに表示された画像をオペレータに見せながら、タスクを実行するようロボットを制御するロボット制御方法であって、
前記オペレータが前記ロボットの存在する空間に居るならば前記オペレータの視界に現われる様子を表わす視界画像を前記ディスプレイに表示させる表示処理を行い、
前記オペレータの動きに応じたタスクを前記ロボットに実行させるための制御命令を生成し前記ロボットに送信する制御処理を行う、
ロボット制御方法。
【請求項16】
前記ロボットは、物体を取り扱う第一の部位を有し、
前記オペレータは、第二の部位を有し、
前記制御処理は、前記第二の部位の動きに基づいて前記第一の部位を動かす命令を前記制御命令として生成し前記ロボットに送信する処理である、
請求項15に記載のロボット制御方法。
【請求項17】
前記制御処理は、前記オペレータが前記第二の部位を動かした際に、前記オペレータが前記空間に居るならば前記第二の部位が前記空間の中で動く軌跡に合わせて前記第一の部位が動くように前記ロボットを制御する処理である、
請求項16に記載のロボット制御方法。
【請求項18】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記表示処理は、前記空間を仮想的に再現した仮想空間の中に前記オペレータの動きに合わせて動くアバターを配置する配置し、前記アバターの目から視線方向に見える様子を表わす画像を前記視界画像として前記ディスプレイに表示させる処理である、
請求項16または請求項17に記載のロボット制御方法。
【請求項19】
前記表示処理は、前記オペレータを計測することによって求められた三次元形状および前記ロボットに設けられた計測装置によって得られたデータに基づいて求められた三次元形状を用いて前記アバターを前記空間に配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項18に記載のロボット制御方法。
【請求項20】
前記オペレータが足踏みするのに伴って前記ロボットを移動させる第二の制御処理、を行い、
前記表示処理は、前記ロボットが前記仮想空間において再現される位置に前記アバターを配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項18または請求項19に記載のロボット制御方法。
【請求項21】
前記表示処理は、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項20に記載のロボット制御方法。
【請求項22】
前記表示処理は、特定のコマンドが入力されまたは前記ロボットに特定のイベントが生じた場合に、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記アバターを前記位置の近傍に配置し直し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項20に記載のロボット制御方法。
【請求項23】
前記アバターが配置し直された後に前記オペレータが動作を行った場合に、前記オペレータと前記ロボットとの位置関係が前記アバターと前記仮想ロボットとの位置関係と同じであるならば前記動作によって前記ロボットに生じる変化が起きるように前記ロボットを制御する、第三の制御処理を行う、
請求項22に記載のロボット制御方法。
【請求項24】
前記ロボットが前記物体に触れまたは前記空間の中の障害物に干渉した場合に、前記物体に触れたことまたは前記障害物に干渉したことを、力覚、触覚、または聴覚を前記オペレータを与えることによって知らせる報知処理を行う、
請求項16ないし請求項23のいずれかに記載のロボット制御方法。
【請求項25】
前記第一の部位によって前記物体を前記オペレータの所望する通りに取り扱うことができない場合に他のロボットと協同して当該物体を取り扱うための協同処理を行う、
請求項16ないし請求項24のいずれかに記載のロボット制御方法。
【請求項26】
前記表示処理は、前記オペレータの動きに応じたタスクを行うように前記アバターを動かしながら前記視界画像を前記ディスプレイに表示させる処理である、
請求項18ないし請求項23のいずれかに記載のロボット制御方法。
【請求項27】
機械を制御する機械制御方法であって、
オペレータが前記機械の存在する空間の中の前記機械の近傍の位置に居るならば前記オペレータの視界に現われる様子を表わす視界画像をディスプレイに表示させる表示処理を行い、
前記オペレータが動作を行った場合に、前記オペレータが前記空間の中の前記位置に居るならば前記動作によって前記機械に生じる変化が起きるように前記機械を制御する制御処理を行う、
機械制御方法。
【請求項28】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記機械は、パワーアシストスーツである、
請求項27に記載の機械制御方法。
【請求項29】
ディスプレイに表示された画像をオペレータに見せながら、タスクを実行するようロボットを制御するコンピュータに用いられるコンピュータプログラムを格納した、前記コンピュータによるアクセスが可能な記録媒体であって、
前記コンピュータプログラムは、
前記オペレータが前記ロボットの存在する空間に居るならば前記オペレータの視界に現われる様子を表わす視界画像を前記ディスプレイに表示させる表示処理を前記コンピュータに実行させ、
前記オペレータの動きに応じたタスクを前記ロボットに実行させるための制御命令を生成し前記ロボットに送信する制御処理を前記コンピュータに実行させる、
記録媒体。
【請求項30】
前記ロボットは、物体を取り扱う第一の部位を有し、
前記オペレータは、第二の部位を有し、
前記制御処理は、前記第二の部位の動きに基づいて前記第一の部位を動かす命令を前記制御命令として生成し前記ロボットに送信する処理である、
請求項29に記載の記録媒体。
【請求項31】
前記制御処理は、前記オペレータが前記第二の部位を動かした際に、前記オペレータが前記空間に居るならば前記第二の部位が前記空間の中で動く軌跡に合わせて前記第一の部位が動くように前記ロボットを制御する処理である、
請求項30に記載の記録媒体。
【請求項32】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記表示処理は、前記空間を仮想的に再現した仮想空間の中に前記オペレータの動きに合わせて動くアバターを配置する配置し、前記アバターの目から視線方向に見える様子を表わす画像を前記視界画像として前記ディスプレイに表示させる処理である、
請求項30または請求項31に記載の記録媒体。
【請求項33】
前記表示処理は、前記オペレータを計測することによって求められた三次元形状および前記ロボットに設けられた計測装置によって得られたデータに基づいて求められた三次元形状を用いて前記アバターを前記空間に配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項32に記載の記録媒体。
【請求項34】
前記オペレータが足踏みするのに伴って前記ロボットを移動させる第二の制御処理を前記コンピュータに実行させ、
前記表示処理は、前記ロボットが前記仮想空間において再現される位置に前記アバターを配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項32または請求項33に記載の記録媒体。
【請求項35】
前記表示処理は、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項34に記載の記録媒体。
【請求項36】
前記表示処理は、特定のコマンドが入力されまたは前記ロボットに特定のイベントが生じた場合に、前記ロボットを仮想した仮想ロボットを前記仮想空間の中の前記位置に配置し、前記アバターを前記位置の近傍に配置し直し、前記視界画像を前記ディスプレイに表示させる処理である、
請求項34に記載の記録媒体。
【請求項37】
前記アバターが配置し直された後に前記オペレータが動作を行った場合に、前記オペレータと前記ロボットとの位置関係が前記アバターと前記仮想ロボットとの位置関係と同じであるならば前記動作によって前記ロボットに生じる変化が起きるように前記ロボットを制御する第三の制御処理を前記コンピュータに実行させる、
請求項36に記載の記録媒体。
【請求項38】
前記ロボットが前記物体に触れまたは前記空間の中の障害物に干渉した場合に、前記物体に触れたことまたは前記障害物に干渉したことを、力覚、触覚、または聴覚を前記オペレータを与えることによって知らせる報知処理を前記コンピュータに実行させる、
請求項30ないし請求項37のいずれかに記載の記録媒体。
【請求項39】
前記第一の部位によって前記物体を前記オペレータの所望する通りに取り扱うことができない場合に他のロボットと協同して当該物体を取り扱うための協同処理を前記コンピュータに実行させる、
請求項30ないし請求項38のいずれかに記載の記録媒体。
【請求項40】
前記表示処理は、前記オペレータの動きに応じたタスクを行うように前記アバターを動かしながら前記視界画像を前記ディスプレイに表示させる処理である、
請求項32ないし請求項37のいずれかに記載の記録媒体。
【請求項41】
機械を制御するコンピュータに用いられるコンピュータプログラムを格納した、前記コンピュータによるアクセスが可能な記録媒体であって、
前記コンピュータプログラムは、
オペレータが前記機械の存在する空間の中の前記機械の近傍の位置に居るならば前記オペレータの視界に現われる様子を表わす視界画像をディスプレイに表示させる表示処理を前記コンピュータに実行させ、
前記オペレータが動作を行った場合に、前記オペレータが前記空間の中の前記位置に居るならば前記動作によって前記機械に生じる変化が起きるように前記機械を制御する制御処理を前記コンピュータに実行させる、
記録媒体。
【請求項42】
前記ディスプレイは、前記オペレータに装着するためのヘッドマウントディスプレイであり、
前記機械は、パワーアシストスーツである、
請求項41に記載の記録媒体。



発明の詳細な説明 【技術分野】
【0001】
本発明は、ロボットなどの機械をオペレータの動作に応じて動作させる技術に関する。
【背景技術】
【0002】
オペレータは、ロボットにタスクをリアルタイムで実行させる場合、通常、ロボットを操作する。ロボットを操作する際に用いられる技術として、例えば次のような技術が知られている。
【0003】
特許文献1に記載される視覚装置は、操作者の頭部の動きに応じて、ロボットであるスレーブ装置に搭載した撮像装置に映像を撮像させ、ヘッドマウントディスプレイに投影させる。
【0004】
特許文献2に記載される遠隔操作システムは、吹き付け作業を開始する前に、吹き付け機1の左カメラ、右カメラでトンネルの吹き付け対象面の画像を撮像し、メモリに記憶する。吹き付け作業が開始されると吹き付けノズルの位置、方向等を計測し、吹き付け対象面の吹き付け量、吹き付け厚を推定し、吹き付けられるモルタルの画像を作成し、メモリに書き込む。また、吹き付けを行っている吹き付けノズルの画像を左カメラ、右カメラで撮像し、画像合成部でこの吹き付けノズルの画像とメモリから送られる吹き付け対象面、および吹き付けられるモルタルの画像とを合成し、立体画像表示部で立体表示する。オペレータは、この画像を見つつ吹き付け機を遠隔操作する。
【0005】
非特許文献1には、人間の身体と類似した構造を持つヒューマノイド型ロボットの操作方法が開示されている。非特許文献2には、移動マニピュレータの遠隔操作システムが開示されている。
【0006】
非特許文献3には、ロボットのいる遠隔地を仮想空間に再現し、その中に人間の手のモデルとタスクを実現するためのツールを提示する手法が開示されている。
【0007】
また、従来、人間の身体とは異なる構造を有するロボットをオペレータが操作する場合は、ジョイスティックまたはゲームコントローラなどの入力装置が用いられる。以下、このようなロボットを「非ヒューマノイド型ロボット」と記載する。
【先行技術文献】
【0008】

【特許文献1】特開平05-228855号公報
【特許文献2】特開平06-323094号報
【0009】

【非特許文献1】C. L. Fernando, M. Furukawa, T. Kurogi, S. Kamuro, K. Sato, K. Minamizawa, and S. Tachi, "Design of telesar v for transferring bodily consciousness in telexistence," in Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on.IEEE, 2012, pp. 5112-5118
【非特許文献2】C. Ha, S. Park, J. Her, I. Jang, Y. Lee, G. R. Cho, H. I. So n, and D. Lee, "Whole body multi-modal semi-autonomous teleoperation system of mobile manipulator," in IEEE International Conference on Robotics and Automation (ICRA). Seattle, WA. MAY 26-30, 2015. IEEE, 2015
【非特許文献3】A. Kheddar, "Teleoperation based on the hidden robot concept," Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, vol. 31, no. 1, pp.1-13, 2001
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来の技術によると、非ヒューマノイド型ロボットを動作させる場合に、オペレータは、どのように入力装置を操作すればどのように非ヒューマノイド型ロボットが動作するのかを予め把握する必要がある。さらに、操作に慣れる必要がある。
【0011】
非ヒューマノイド型ロボットを動作させるのに慣れる時間は、短いほうが望ましい。特に災害現場および事故現場など緊急性の要する場所で初心者が非ヒューマノイド型ロボットを使用する場合は、少しでも早く非ヒューマノイド型ロボットを動作させるのに慣れることが望ましい。ロボット以外の機械を動作させる場合も、同様である。
【0012】
本願発明は、このような課題に鑑み、オペレータがロボットなどの機械を、その存在を意識することなく動作させることができるようにすることを、目的とする。
【課題を解決するための手段】
【0013】
本願発明の一形態に係るロボット制御システムは、ディスプレイに表示された画像をオペレータに見せながら、タスクを実行するようロボットを制御するロボット制御システムであって、前記オペレータが前記ロボットの存在する空間に居るならば前記オペレータの視界に現われる様子を表わす視界画像を前記ディスプレイに表示させる表示手段と、前記オペレータの動きに応じたタスクを前記ロボットに実行させるための制御命令を生成し、前記ロボットに送信する制御手段と、を有する。
【0014】
「タスク」は、ペンを持つタスクまたはペンで円を描くタスクなど複雑なタスクだけでなく、特定の部位を単に動かすタスクのような簡単なタスクも含まれる。また、タスクを実現するための人間の動作とロボットの動作とが異なるようなタスクも含まれる。例えば、写真を撮影するタスクに関しては、人間はカメラのシャッターを押す仕草をすることによって行うが、ロボットはそれに搭載されているカメラによって映像をキャプチャし保存することによって行う。このように、ロボットが行うタスクは、動作が見た目に現われないことがある。
【0015】
本願発明の一形態に係る機械制御システムは、機械を制御する機械制御システムであって、オペレータが前記機械の存在する空間の中の前記機械の近傍の位置に居るならば前記オペレータの視界に現われる様子を表わす視界画像をディスプレイに表示させる表示手段と、前記オペレータが動作を行った場合に、前記オペレータが前記空間の中の前記位置に居るならば前記動作によって前記ロボットに生じる変化が起きるように前記ロボットを制御する、制御手段と、を有する。
【発明の効果】
【0016】
本発明によると、オペレータは、ロボットなどの機械を、その存在を意識することなく操作することができる。
【図面の簡単な説明】
【0017】
【図1】遠隔作業システムの全体的な構成の例を示す図である。
【図2】第一の空間、第二の空間、および仮想空間の例を示す図である。
【図3】オペレーションコンピュータのハードウェア構成の例を示す図である。
【図4】作業支援プログラムの構成の例を示す図である。
【図5】ロボットのハードウェア構成の例を示す図である。
【図6】初期化の際のデータの流れの例を示す図である。
【図7】第二の空間座標系とロボット座標系との位置関係の例を示す図である。
【図8】角度θhip、長さLleg、および距離Dstepの例を示す図である。
【図9】ロボットの移動の際のデータの流れの例を示す図である。
【図10】角度θbodyの例を示す図である。
【図11】ロボットの移動の方向および距離の例を示す図である。
【図12】仮想空間の様子の画像を表示する際のデータの流れの例を示す図である。
【図13】ヘッドマウントディスプレイに表示される画像の例を示す図である。
【図14】把持部を動作させる際のデータの流れの例を示す図である。
【図15】仮想空間への仮想ロボットの配置およびアバターのシフトの例を示す図である。
【図16】ヘッドマウントディスプレイに表示される画像の例を示す図である。
【図17】障害物の対策の際のデータの流れの例を示す図である。
【図18】ロボットおよびヘルプロボットが協同する例を示す図である。
【図19】遠隔地の作業を支援するための処理の流れの例を示すフローチャートである。
【図20】遠隔地の作業を支援するための処理の流れの例を示すフローチャートである。
【図21】遠隔地の作業を支援するための処理の流れの例を示すフローチャートである。
【図22】パワーアシストスーツが制御の対象である場合の、第一の空間、第二の空間、および仮想空間の例を示す図である。
【図23】パワーアシストスーツが制御の対象である場合の、第一の空間、第二の空間、および仮想空間の第二の例を示す図である。
【図24】実験の結果の例を示す図である。
【発明を実施するための形態】
【0018】
図1は、遠隔タスク実行システム5の全体的な構成の例を示す図である。図2は、第一の空間51、第二の空間52、および仮想空間53の例を示す図である。

【0019】
図1に示す遠隔タスク実行システム5は、図2に示す第二の空間52でのタスクをオペレータ40が第一の空間51に居ながら遠隔的に行うことができるようにするシステムである。例えば、第二の空間52の中にあるペン61およびパネル62を探し、ペン61でパネル62に絵を描く、というタスクを行うことができる。

【0020】
第二の空間52にはロボット3が配置されており、ロボット3が、第二の空間52に存在する様々な物体を直接的に取り扱う。

【0021】
仮想空間53は、第二の空間52をコンピュータによって仮想的に再現した仮想空間である。仮想空間53には、オペレータ40のアバター41が配置される。オペレータ40は、アバター41の視線で見た、仮想空間53の様子を、ヘッドマウントディスプレイ12によって見ることができる。これにより、自分自身がアバター41に乗り移り、仮想空間53に居るように感じることができる。

【0022】
オペレータ40が動作するとアバター41も同じように動作し、さらにロボット3もそれに連動して動作する。

【0023】
遠隔タスク実行システム5のこのような機能により、オペレータ40は、第一の空間51に居ながら遠隔的に、かつ、ロボット3を意識することなく、第二の空間52でのタスクを行うことができる。以下、この仕組みについて説明する。

【0024】
遠隔タスク実行システム5は、図1に示すように、オペレーションコンピュータ10、ヘッドマウントディスプレイ12、複数台の色距離センサ14、モーションキャプチャコンピュータ16、通信回線2、およびロボット3などによって構成される。

【0025】
通信回線2は、イーサネット(登録商標)回線、インターネット、公衆回線、または専用線などの通信回線であって、オペレーションコンピュータ10とロボット3との通信など、後述する種々の通信のために用いられる。

【0026】
オペレータ40は、第一の空間51にいる。ヘッドマウントディスプレイ12は、オペレータ40の頭部に装着される。ヘッドマウントディスプレイ12として、非透過型のHMDまたは透過型のHMDなどが用いられる。非透過型のHMDの例は、Oculus VR社のOculus riftである。透過型のHMDの例は、マイクロソフト社のHoloLensおよびグーグル社のグーグルグラスである。以下、ヘッドマウントディスプレイ12として非透過型のHMDが用いられる場合を例に説明する。

【0027】
複数台の色距離センサ14は、第一の空間51の中央付近に配置される物体の前面、後面、および両側面を死角なく計測できるように、第一の空間51の中に設置される。以下、色距離センサ14として3台の色距離センサ141~143が設置される場合を例に説明する。

【0028】
ロボット3は、第二の空間52の中にいる。さらに、第二の空間52には、ペン61およびパネル62など様々な物体が置かれている。置かれている物体にはRFID(Radio Frequency Identification)などのタグが搭載されており、物体の情報をロボットが読み込める環境を想定してもよい。

【0029】
パネル62には、ペン61によって絵が描かれる。パネル62としてホワイトボードが用いられ、ペン61として水性ペンが用いられる。または、パネル62として、静電容量方式のタッチパネルディスプレイを用いてもよい。この場合は、ペン61として、タッチペンが用いられる。

【0030】
オペレーションコンピュータ10は、ヘッドマウントディスプレイ12およびモーションキャプチャコンピュータ16と通信することができる場所に設置される。第一の空間51の中に設置されていてもよいし、第一の空間51の外に設置されていてもよい。

【0031】
モーションキャプチャコンピュータ16は、オペレーションコンピュータ10および色距離センサ141~143と通信することができる場所に設置される。第一の空間51の中に設置されていてもよいし、第一の空間51の外に設置されていてもよい。

【0032】
〔各装置の概要〕
図3は、オペレーションコンピュータ10のハードウェア構成の例を示す図である。図4は、タスク支援プログラム10jの構成の例を示す図である。図5は、ロボット3のハードウェア構成の例を示す図である。

【0033】
遠隔タスク実行システム5を構成する各装置の主な機能を説明する。各装置の処理の詳細については、後に説明する。

【0034】
オペレーションコンピュータ10は、主に、オペレータ40のモーションに基づいてロボット3へのコマンドを生成したり、仮想空間53にオペレータ40のアバター41を図2に示すように配置し仮想空間53の様子を表わす画像の画像データを生成したりする。以下、オペレーションコンピュータ10として、パーソナルコンピュータが用いられる場合を例に説明する。

【0035】
オペレーションコンピュータ10は、図3に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、補助記憶装置10d、無線通信装置10e、液晶ディスプレイ10f、スピーカ10g、および入力装置10hなどによって構成される。

【0036】
無線通信装置10eは、通信回線2の無線基地局を介してヘッドマウントディスプレイ12、モーションキャプチャコンピュータ16、およびロボット3と通信する。

【0037】
液晶ディスプレイ10fは、メッセージを示す画面などを表示する。スピーカ10gは、メッセージを音声によって出力する。

【0038】
入力装置10hは、キーボードまたはポインティングデバイスであって、オペレータ40または管理者がデータまたはコマンドをオペレーションコンピュータ10に入力するために用いられる。

【0039】
ROM10cまたは補助記憶装置10dには、タスク支援プログラム10jが記憶されている。タスク支援プログラム10jは、オペレータ40に仮想空間53の様子を見せたりロボット3を制御したりするためのプログラムである。

【0040】
タスク支援プログラム10jは、図4に示すように、初期化モジュール101、アバター生成モジュール102、仮想空間演算モジュール103、移動情報演算モジュール104、移動コマンドモジュール105、マニピュレートモジュール106、およびソリューションモジュール107などのソフトウェアモジュールなどによって構成される。本実施形態では、移動コマンドモジュールとマニュピュレートモジュールとを分けているが、ロボット3が冗長自由度を持つ場合などは、移動ベースとマニュピュレータとを一体のシステムとして制御してもよい。

【0041】
初期化モジュール101は、タスクを開始する前またはタスクを再開する前に、初期化の処理を行う。

【0042】
アバター生成モジュール102は、オペレータ40の三次元形状の計測の結果に応じてアバター41のデータを生成する。

【0043】
仮想空間演算モジュール103は、仮想空間53にある物体の位置および姿勢を演算する。さらに、仮想空間53の中の特定の位置から特定の方向を見た場合の仮想空間53の様子を表わす画像の画像データを生成する。アバター41を仮想空間53にした場合の仮想空間53の様子を表わす画像の画像データを生成することもできる。演算および生成の技術として、SLAM(Simultaneous Localization And Mapping)が用いられる。

【0044】
移動情報演算モジュール104は、オペレータ40の動作に基づく移動の量および方向を演算する。

【0045】
移動コマンドモジュール105は、ロボット3を移動させるためのコマンドをオペレータ40の動作に応じて生成し、ロボット3に与える。

【0046】
マニピュレートモジュール106は、ロボット3のアームを動作させるためのコマンドをオペレータ40の動作に応じて生成し、ロボット3に与える。

【0047】
ソリューションモジュール107は、ロボット3が障害物に遭遇した際の対策のためのモジュールである。

【0048】
タスク支援プログラム10jは、RAM10bにロードされ、CPU10aによって実行される。補助記憶装置10dとして、SSD(Solid State Drive)またはハードディスクなどが用いられる。

【0049】
ヘッドマウントディスプレイ12は、上述の通りオペレータ40の頭部に装着される。そして、オペレーションコンピュータ10から画像データを受信し、仮想空間53の様子を表わす画像を表示する。

【0050】
色距離センサ141~143は、RGB-Dカメラまたはデプスカメラであって、オペレータ40の人体の表面の各点の色、および、各点と色距離センサ141~143自らとの距離を、所定の時間Taごとに計測する。これにより、各点のRGBD(Red Green Blue Depth)データが所定の時間Taごとに得られる。所定の時間Taは、オペレータ40の動作の解析能の高さに応じて任意に決めることができるが、例えば0.1秒ごとに訪れる時刻である。

【0051】
そして、色距離センサ141~143は、RGBDデータを得るごとに、モーションキャプチャコンピュータ16へ送信する。色距離センサ141~143として、例えばマイクロソフト社のkinectセンサが用いられる。

【0052】
モーションキャプチャコンピュータ16は、色距離センサ141~143からRGBDデータが送信されてくるごとに、オペレータ40の全身の三次元形状を、RGBDデータおよび色距離センサ141~143それぞれの設置されている位置に基づいて算出する。そして、算出した三次元形状を示す三次元データをオペレーションコンピュータ10へ送信する。モーションキャプチャコンピュータ16として、例えばマイクロソフト社のKinect for Windows SDKがインストールされたコンピュータが用いられる。

【0053】
このように、モーションキャプチャコンピュータ16は、オペレータ40の全身の三次元形状を所定の時間Taごと算出する。三次元形状の変化は、オペレータ40のモーションを表わしている。したがって、モーションキャプチャコンピュータ16はオペレータ40のモーションをキャプチャしている、と言える。

【0054】
ロボット3は、図1または図5に示すように、筐体30、ロボットコンピュータ31、ロボットコントローラ32、モータ33、モバイルドライバ34、および2つまたは4つの車輪35、マニピュレータ36、マニピュレータドライバ37、アクチュエータ38、および色距離センサ39などによって構成される。

【0055】
ロボットコンピュータ31は、ロボット3の全体的な管理を行うためのコンピュータである。例えば、オペレーションコンピュータ10から特定のデータを受信すると、ロボットコントローラ32へ転送する。または、マニピュレータ36によって得られたデータをオペレーションコンピュータ10へ転送する。

【0056】
また、ロボットコンピュータ31は、色距離センサ39によって得られたRGBDデータなどに基づいて、ロボットコンピュータ31の周囲の物体のモデリングを行い、さらに、物体の位置および姿勢を算出する。ロボットコンピュータ31は、筐体30に内蔵されている。

【0057】
色距離センサ39は、RGB-Dカメラまたはデプスカメラである。色距離センサ39として、Kinectセンサが用いられる。色距離センサ39は、ロボット3の前方を計測することができるように、筐体30の上面に設置されている。なお、筐体30の上面以外の位置に設置されてもよい。例えば、把持部362に設置されてもよい。または、色距離センサ39が複数台、設置されてもよい。例えば、4台の色距離センサ39が筐体30の上面にそれぞれ前方、右方、左方、および後方を向くように設置されてもよい。

【0058】
ロボットコントローラ32は、筐体30に内蔵されており、オペレータ40のモーションに応じてロボット3が動くようにモバイルドライバ34またはマニピュレータドライバ37に指令を与える。

【0059】
マニピュレータ36は、人間の手および腕の代わりに、物体を掴んだり動かしたりする。マニピュレータ36は、筐体30の上面に設けられ、アーム部361および把持部362などによって構成される。

【0060】
アーム部361は、手先に6自由度以上を持たせるための直動関節および回転関節を有し、これらの関節を曲げたり伸ばしたりすることによって、位置および姿勢を変えることができる。把持部362は、複数の指を有し、複数の指同士の距離を調整することによって物体を掴んだり離したりすることができる。

【0061】
アクチュエータ38は、アーム部361および把持部362を駆動する。マニピュレータドライバ37は、ロボットコントローラ32からの指令に基づいて、アーム部361または把持部362が駆動するようにアクチュエータ38を制御する。なお、筐体30に対する、把持部362の位置は、例えば、ロータリーエンコーダなどによって各関節の角度を計測することによって求められる。

【0062】
床からの、筐体30の上面の高さは、約50~100センチメートルである。アーム部361の長さは、人間の腕の付け根から指の先端までの長さよりも少し長い程度であり、約60~100センチメートルである。把持部362の両端の指を広げたときの距離は、人間の手を広げたときの親指と小指との距離よりも少し長い程度であり、約20~30センチメートルである。

【0063】
このような構成により、把持部362は、人間がロボット3と同じ位置に立っているときに人間の手が届く範囲と同じ範囲またはそれよりも広い範囲で動くことができる。オペレータ40の可動範囲とロボット3の可動範囲とが異なっていても構わない。後に述べるが、オペレータ40の可動範囲とロボット3の可動範囲とが異なっていて、オペレータ40の動作に応じたタスクをロボット3が実現できない場合には、仮想空間にロボットのCG(Computer Graphics)を入れ込むことにより、ロボット3がタスクを実現できないことをオペレータ40に理解させて、対応するためのリカバリー処理を実施する。

【0064】
筐体30の右側面および左側面には、車輪35が1つずつまたは2つずつ設けられている。以下、車輪35として右車輪351および左車輪352それぞれが筐体30の右側面および左側面に設けられている場合を例に説明する。

【0065】
モータ33は、筐体30に内蔵されており、右車輪351および左車輪352を駆動させる。モバイルドライバ34は、筐体30に内蔵されており、ロボットコントローラ32からの指令に基づいて、右車輪351および左車輪352が駆動するようにモータ33を制御する。これにより、ロボット3が移動する。

【0066】
〔第二の空間52の中の物体を取り扱う際の処理〕
次に、オペレータ40が第一の空間51の中に居ながら第二の空間52の中の物体を取り扱う際の、各装置の処理について説明する。

【0067】
〔初期化〕
図6は、初期化の際のデータの流れの例を示す図である。図7は、第二の空間座標系とロボット座標系との位置関係の例を示す図である。

【0068】
オペレータ40は、タスクを開始する前に、第一の空間51の中の、色距離センサ141~143によって囲まれる位置に、右足403および左足404を揃えて立つ。そして、開始コマンド70をオペレーションコンピュータ10に入力する。

【0069】
すると、オペレーションコンピュータ10は、初期化モジュール101によって、初期化を行う。以下、初期化を、図6を参照しながら説明する。

【0070】
オペレーションコンピュータ10は、開始コマンド70が入力されると、計測コマンド71を色距離センサ141~143へ送信する。

【0071】
なお、オペレータ40の手がオペレーションコンピュータ10に届かない場合は、オペレータ40が無線デバイスによって開始コマンド70を入力してもよいし、オペレータ40の代わりに補助者が開始コマンド70を入力してもよい。または、オペレータ40が開始コマンド70を入力した後、所定の時間、例えば10秒が経過した後、計測コマンド71が送信されるようにしてもよい。

【0072】
また、初期化が完了するまで、オペレータ40は、動かず静止していることが、望ましい。特に、顔401、右手402、右足403、および左足404が静止していることが、望ましい。

【0073】
色距離センサ141~143は、それぞれ、計測コマンド71を受信すると、オペレータ40の人体の表面の各点の色、および、各点と色距離センサ141~143自らとの距離の計測を開始する。計測は、上述の通り、所定の時間Taごとに行われる。そして、色距離センサ141~143は、計測によってRGBDデータ7Aを得るごとに、モーションキャプチャコンピュータ16へ送信する。

【0074】
モーションキャプチャコンピュータ16は、色距離センサ141~143のそれぞれからRGBDデータ7Aを受信すると、これらのRGBDデータ7Aに基づいてオペレータ40の全身の三次元形状を算出する。そして、算出した三次元形状を示す三次元データ7Bをオペレーションコンピュータ10へ送信する。

【0075】
オペレーションコンピュータ10は、1つ目の三次元データ7Bを受信すると、その三次元データ7Bに示される三次元形状から、右手402、右足403、および左足404それぞれを検出する。そして、オペレータ座標系における、右手402の位置を算出する。以下、この算出された位置を「初期位置P0」と記載する。両手を使った作業の場合には、右手402だけでなく左手407の位置も検出する。

【0076】
「オペレータ座標系」は、図2に示すような三次元座標系である。つまり、右足403のつま先と左足404のつま先とを結ぶライン40Lの中心を原点とし、右足403のつま先から左足404のつま先への方向をX1軸方向とし、鉛直上向き方向をZ1軸方向とし、さらに、X1軸およびZ1軸に直交しかつオペレータ40の正面から背後へ向かう方向をY1軸方向とする、三次元座標系である。

【0077】
そして、オペレーションコンピュータ10は、初期位置P0をパラメータとして示す初期化コマンド72をロボットコンピュータ31へ送信する。

【0078】
ロボットコンピュータ31は、初期化コマンド72を受信すると、把持部362の位置の初期化を行うようにロボットコントローラ32へ指令する。この際に、初期化コマンド72に示される初期位置P0をロボットコントローラ32に通知する。

【0079】
すると、ロボットコントローラ32は、初期位置P0に対応する、ロボット座標系における位置へ把持部362を移動させるように、マニピュレータドライバ37へ指令する。

【0080】
「ロボット座標系」は、右車輪351および左車輪352それぞれが接地する位置を結ぶラインの中心を原点とし、右車輪351から左車輪352へ向かう方向をX4軸方向とし、鉛直上向き方向をZ4軸方向とし、さらに、X4軸およびZ4軸に直交しかつロボット3の正面から背後へ向かう方向をY4軸方向とする三次元座標系である。以下、この中心を「ロボット原点O4」と記載する。

【0081】
つまり、ロボットコントローラ32は、初期位置P0が(X1a,Y1a,Z1a)であれば、ロボット座標系における(X1a,Y1a,Z1a)の位置へ把持部362を移動させるように、マニピュレータドライバ37へ指令する。

【0082】
この際に、ロボットコントローラ32は、ロボット座標系におけるこの位置をマニピュレータドライバ37へ通知する。

【0083】
すると、マニピュレータドライバ37は、通知された位置に把持部362が移動するようにアクチュエータ38を制御する。さらに、マニピュレータドライバ37は、把持部362が完全に開いた状態になるように、つまり、把持部362の複数の指同士の距離を、取り得る距離の最長になるように、アクチュエータ38を制御する。

【0084】
また、ロボットコンピュータ31は、把持部362の位置の初期化を指令するのと並行して、ロボット3の前方の計測を色距離センサ39に開始させる。

【0085】
すると、色距離センサ39は、所定の時間Taごとに計測を行い、計測によってRGBDデータ7Cを得るごとにロボットコンピュータ31へ送信する。なお、初期化後は、ロボット3の前方の計測およびRGBDデータ7Cの送信を、ロボット3が移動している間のみ行ってもよい。

【0086】
そして、ロボットコンピュータ31は、RGBDデータ7Cを受信するごとに、これをオペレーションコンピュータ10へ送信する。

【0087】
ところで、第二の空間52の原点O2、X2軸方向、Y2軸方向、およびZ2軸方向を定めなければならない。そこで、オペレーションコンピュータ10は、図7(A)のように、第二の空間52の中の、初期化が行われた時点のロボット原点O4の位置と同じ位置を、原点O2に定める。さらに、この時点の、右車輪351から左車輪352へ向かう方向をX2軸方向に定める。鉛直上向き方向をZ2軸方向に定める。そして、X2軸およびZ2軸に直交しかつこの時点の、ロボット3の正面から背後へ向かう方向をY2軸方向に定める。X2軸、Y2軸、およびZ2軸からなる座標系を「第二の空間座標系」と記載する。

【0088】
なお、初期化の時点においては、第二の空間座標系のXYZの各軸つまりX2軸、Y2軸、およびZ2軸は、それぞれ、ロボット座標系のXYZの各軸つまりX4軸、Y4軸、およびZ4軸に一致する。第二の空間座標系において、ロボット3は、Y2軸のマイナス方向を向いて原点O2で止まっている。しかし、ロボット3が第二の空間52つまり第二の空間座標系の中で移動するのに伴って、図7(B)のように、ロボット座標系の、第二の空間座標系に対する位置が変わる。

【0089】
以上の処理によって、初期化モジュール101による初期化が完了する。初期化の後、オペレータ40の動作に応じてアバター41およびロボット3が動作する。つまり、オペレータ40、アバター41、およびロボット3がリンクする。オペレータ40にとっては、自分の動作に伴ってアバター41が動き、アバター41の動作に伴ってロボット3が自律的に動くように感じられる。よって、オペレータ40は、第二の空間52の中の物体を、ロボット3を意識することなく、かつ、直接触れることなくロボット3を介して取り扱うことができる。仮想空間53の画像の表示のための処理およびロボット3の移動のための処理が並行して行われる。以下、これらの処理について、説明する。

【0090】
〔ロボット3の移動〕
図8は、角度θhip、長さLleg、および距離Dstepの例を示す図である。図9は、ロボット3の移動の際のデータの流れの例を示す図である。図10は、角度θbodyの例を示す図である。図11は、ロボット3の移動の方向および距離の例を示す図である。

【0091】
オペレータ40が、第一の空間51の中を歩きまたは足踏みすると、アバター41が移動し、ロボット3も移動する。さらに、自分の正面の向きを変えることによって、ロボット3が前進する方向を変えることができる。まずは、ロボット3が前進する際の処理を、オペレータ40が足踏みする場合を例に、図8を参照しながら説明する。アバター41の移動については、後述する。第一の空間51の中を歩く場合の処理も、後述する。

【0092】
オペレーションコンピュータ10は、移動情報演算モジュール104によって、ロボット3を移動させるべき距離および向きを次のように算出する。

【0093】
上述の通り、初期化が完了した後も、所定の時間Taごとにモーションキャプチャコンピュータ16から三次元データ7Bがオペレーションコンピュータ10に送信されてくる。

【0094】
ところで、オペレータ40が1回、足踏みする間に、オペレータ40の右脚405と左脚406との角度θhipは、次のように変化する。オペレータ40が左足404を上げ始めると、角度θhipは、0度から徐々に大きくなる。左足404が図9(A)に示すように最も高く上がったところで、角度θhipは、最大になる。そして、左足404を下げ始めると角度θhipは、徐々に小さくなり、0度に戻る。

【0095】
オペレーションコンピュータ10は、三次元データ7Bに基づいて、右足403または左足404の位置の変化の有無を判別し、変化があれば、右脚405および左脚406それぞれの、所定の時間Taごとの角度θhipを算出する。

【0096】
さらに、オペレーションコンピュータ10は、右脚405または左脚406の長さLlegを三次元データ7Bに基づいて算出する。なお、長さLlegは、1回だけ算出すればよい。初期化の際に予め算出しておいてもよい。

【0097】
そして、オペレーションコンピュータ10は、次の(1)式に基づいて、距離Dstepを算出する。

【0098】
【数1】
JP2018097223A1_000003t.gif

【0099】
距離Dstepは、オペレータ40が足踏みするのではなく歩いたならば進むと推測される距離である。

【0100】
つまり、オペレーションコンピュータ10は、長さLlegおよび所定の刻み時間Taにおける角度θhipの変化の割合に基づいて距離Dstepを算出する。なお、時刻Tiは、i番目のサンプル時刻であり、時刻(Ti-1)は、1つ前の時刻(時刻Tiの時間Ta前)である。

【0101】
オペレーションコンピュータ10は、距離Dstepを他の方法によって算出してもよい。例えば、オペレーションコンピュータ10は、最大であるときの角度θhipで図9(B)のようにオペレータ40が一歩前進したものとみなし、三角関数を用いて距離Dstepを算出してもよい。この方法によると、(1)式を用いる方法よりも分解能は劣るが、計算量を減らすことができる。

【0102】
または、予め、オペレータ40または補助者が、実際にオペレータ40が様々な歩幅Wで歩いたときの両脚の最大の角度θhmxを計測し、歩幅Wと角度θhmxとの関係式、W=f(θhmx)、を求めておく。そして、オペレーションコンピュータ10は、オペレータ40が足踏みすると、角度θhipの最大値を算出し、これを、この式のθhmxに代入することによって、歩幅Wを距離Dstepとして算出してもよい。この方法も、(1)式を用いる方法よりも分解能は劣るが、計算量を減らすことができる。

【0103】
また、オペレーションコンピュータ10は、三次元データ7Bに基づいて、オペレータ40の正面の向きの変化を次のように算出する。

【0104】
オペレーションコンピュータ10は、初期化後、第一の空間51における、ライン40L、つまり、右足403のつま先と左足404のつま先とを結ぶラインの向きを監視し続ける。そして、図10に示すようにライン40Lの向きに変化が生じると、変化前の向きに対する変化後の向きの角度θbodyを算出する。これにより、オペレータ40が自分の正面の向きをどれくらい変えたのかが算出される。

【0105】
移動情報演算モジュール104によって、以上のように、ロボット3を移動させるべき距離および向きが算出される。

【0106】
なお、オペレータ40が右脚405または左脚406を上げることによって自分の正面の向きを変えると、足踏みであるとオペレーションコンピュータ10が誤って検知することがある。そこで、オペレータ40は、右足403および左足404を床に付けたまま向きを変えるのが望ましい。または、角度θhipが所定の角度未満である場合は、オペレーションコンピュータ10は、距離Dstepを算出しないようにしてもよい。

【0107】
オペレーションコンピュータ10は、移動情報演算モジュール104によって距離Dstepまたは角度θhipが算出されると、移動コマンドモジュール105によって次のようにロボットコンピュータ31へコマンドを与える。

【0108】
オペレーションコンピュータ10は、移動情報演算モジュール104によって距離Dstepが算出された場合は、この距離Dstepをパラメータとして示す前進コマンド73をロボットコンピュータ31へ送信する。または、角度θbodyが算出された場合は、この角度θbodyをパラメータとして示す方向転換コマンド74をロボットコンピュータ31へ送信する。

【0109】
ロボットコンピュータ31は、前進コマンド73または方向転換コマンド74を受信すると、ロボットコントローラ32へ転送する。

【0110】
ロボットコントローラ32は、初期化後に方向転換コマンド74を受信することなく前進コマンド73を受信した場合は、前進コマンド73に示される距離Dstepだけ真っ直ぐ前進するようにモバイルドライバ34へ指令する。または、前回に1歩分前進した後、方向転換コマンド74を受信することなく前進コマンド73を受信した場合も同様に、前進コマンド73に示される距離Dstepだけ直進するようにモバイルドライバ34へ指令する。

【0111】
すると、モバイルドライバ34は、図11(A)に示すように距離Dstepだけ進行方向を変えることなくロボット3が直進するように、モータ33を制御する。

【0112】
または、初期化後、方向転換コマンド74を受信してから前進コマンド73を受信した場合は、方向転換コマンド74に示される角度θbodyの方向へ、前進コマンド73に示される距離Dstepだけ前進するように、モバイルドライバ34へ指令する。

【0113】
すると、モバイルドライバ34は、図11(B)に示すように角度θbodyの方向へ距離Dstepだけロボット3が前進するように、右車輪351および左車輪352の向きおよびモータ33を制御する。

【0114】
また、モバイルドライバ34は、ロボット3が移動している間、所定の時間Taごとに、ロボット3の、第二の空間52における現在の位置および姿勢を算出し、算出した位置および姿勢を示すステータスデータ7Dをロボットコンピュータ31へ送信する。

【0115】
ロボットコンピュータ31は、ステータスデータ7Dを受信するごとに、それをオペレーションコンピュータ10へ転送する。

【0116】
〔仮想空間53の画像の表示〕
図12は、仮想空間53の様子の画像を表示する際のデータの流れの例を示す図である。図13は、ヘッドマウントディスプレイ12に表示される画像の例を示す図である。

【0117】
初期化が完了した後、仮想空間53の中の画像を表示するための処理が次のように行われる。以下、この処理を、図12を参照しながら説明する。

【0118】
開始コマンド70が入力されると、上述の通り、色距離センサ141~143によってRGBDの計測が開始され、モーションキャプチャコンピュータ16によって三次元形状の算出が開始される。

【0119】
初期化が完了した後も、色距離センサ141~143は、RGBDの計測を継続し、モーションキャプチャコンピュータ16は三次元形状の算出を継続する。これにより、オペレーションコンピュータ10には、所定の時間Taごとにモーションキャプチャコンピュータ16から三次元データ7Bが送信されてくる。

【0120】
オペレーションコンピュータ10は、三次元データ7Bが送信されてくるごとに、アバター生成モジュール102を用いて三次元データ7Bに対して加工を施すことによって、アバター41のアバターデータ7Eを生成する。例えば、加工として、三次元形状の円滑化の処理を施す。

【0121】
または、モーションキャプチャコンピュータ16は、最初にオペレータ40の三次元形状を算出して三次元データ7Bを生成し、三次元データ7Bをオペレーションコンピュータ10へ送信した後は、三次元データ7Bを生成し送信するのを継続する代わりに、オペレータ40の表面の点のうちの変化があった点の変化後の座標をオペレーションコンピュータ10へ通知するようにしてもよい。

【0122】
この場合は、オペレーションコンピュータ10は、変化後の座標を最初に通知されると、その座標に応じて三次元データ7Bを補正することによってアバターデータ7Eを生成する。その後は、変化後の座標が通知されるごとに、その座標に応じてアバターデータ7Eを補正する。

【0123】
上述の通り、オペレーションコンピュータ10には、所定の時間TaごとにRGBDデータ7Cがロボットコンピュータ31から送信されてくる。初期化後は、さらに、ステータスデータ7Dが送信されてくることがある。

【0124】
オペレーションコンピュータ10は、RGBDデータ7Cを受信し、またはアバターデータ7Eが生成されもしくは補正されるごとに、仮想空間演算モジュール103によって次の処理を行う。

【0125】
オペレーションコンピュータ10は、RGBDデータ7Cを受信すると、RGBDデータ7Cに基づいて第二の空間52を再現することによって、仮想空間53にある仮想の物体の位置および姿勢を算出する。これにより、ペン61およびパネル62など第二の空間52の中の各物体が、各物体の相対的な関係を保ったまま仮想空間53に仮想される。

【0126】
なお、ロボット原点O4と色距離センサ39の位置とが一致していないので、オペレーションコンピュータ10は、両者の差に応じて物体の位置および姿勢を補正してもよい。

【0127】
また、ロボット3が移動し始めるまで、つまりステータスデータ7Dを受信するまでは、オペレーションコンピュータ10は、ロボット3がY2軸のマイナス方向を向いて原点O2にあるものとして、第二の空間52を再現する。ステータスデータ7Dを受信したら、そのステータスデータ7Dに示される位置および向きにロボット3があるものとして、第二の空間52を再現する。位置および姿勢は、マイクロソフト社のkinectの技術によって算出することができる。

【0128】
または、オペレーションコンピュータ10は、アバター生成モジュール102によってアバターデータ7Eが生成されまたは補正されると、第二の空間52における、ロボット3の現在の位置および向きに合わせて、そのアバターデータ7Eに基づいて仮想空間53にアバター41を配置しまたは移動させる。

【0129】
アバター41の初期の位置は、仮想空間座標系の原点である。仮想空間座標系は、仮想空間53の座標系であって、初期におけるアバター41の右足のつま先から左足のつま先への方向をX3軸方向とし、鉛直上向き方向をZ3軸方向とし、さらに、X3軸およびZ3軸に直交しかつアバター41の正面から背後へ向かう方向をY3軸方向とする、三次元座標系である。

【0130】
既にアバター41を配置済である場合は、オペレーションコンピュータ10は、そのアバターデータ7Eに示される三次元形状になるようにアバター41を更新する。

【0131】
仮想空間53へのアバター41の配置およびアバター41の更新は、SLAM(Simultaneous Localization And Mapping)の技術によって行うことができる。

【0132】
さらに、オペレーションコンピュータ10は、仮想空間演算モジュール103によって、所定の時間Taごとに仮想空間53におけるアバター41の両目の位置を検出し、その位置からの視線の方向を算出する。以下、仮想空間53におけるアバター41の両目の位置を「両目位置」と記載する。両目位置として、アバター41の両目の代わりにヘッドマウントディスプレイ12の位置を検出してもよい。そして、両目位置から視線の方向を見た場合の、仮想空間53の中の物体の様子の画像を表わす画像データ7Fを生成し、ヘッドマウントディスプレイ12へ送信する。この画像は、オペレータ40の視界に現われる様子を表わしていると、言える。

【0133】
ヘッドマウントディスプレイ12は、画像データ7Fを受信するごとに、画像データ7Fが表わす画像を表示する。

【0134】
以上の処理によると、オペレータ40が顔401を動かすと、顔401の動きに伴ってアバター41の両目位置および視線の方向も変わり、仮想空間53の中の物体の様子の画像も変わる。よって、オペレータ40は、所定の時間Taごとに表示される画像を見ることによって、自分が第二の空間52または仮想空間53にいるように感じることができる。画像が所定の時間Taごとに変わるので、ヘッドマウントディスプレイ12は動画像を表示していると、言える。

【0135】
また、表示される画像は、両目位置から見えるものである。よって、これらの画像には、アバター41の全体は表われておらず、図13のように、例えば腕および手しか表われない。

【0136】
オクルージョンの問題を軽減するために、アバター41の画像を半透明にしてもよい。または、オペレータ40がタスクを実行していないとき、つまり、右手402を動かしていないときは、アバター41の画像を表示しないようにしてもよい。または、コマンドによってアバター41の画像の不透過での表示、半透明での表示、および非表示を切り換えることができるようにしてもよい。ヘッドマウントディスプレイ12として透過型のHMDが用いられる場合は、デフォルトではアバター41の画像を表示しないようにしておき、コマンドによってアバター41の画像の不透過での表示、半透明での表示、および非表示を切り換えられるようにすればよい。

【0137】
〔手の動作〕
図14は、把持部362を動作させる際のデータの流れの例を示す図である。

【0138】
オペレータ40は、右手402を動かすことによって、把持部362を動かすことができる。以下、把持部362を動かす処理を、図14を参照しながら説明する。

【0139】
オペレーションコンピュータ10は、初期化後、マニピュレートモジュール106によって次の処理を行う。

【0140】
オペレーションコンピュータ10は、三次元データ7Bを受信するごとに、オペレータ座標系における右手402の位置を算出し、位置に変化があったか否かを監視する。

【0141】
そして、右手402の位置に変化があったことを検知すると、オペレーションコンピュータ10は、右手402の最新の位置の座標をパラメータとして示すマニピュレートコマンド75をロボットコンピュータ31に送信する。

【0142】
ロボットコンピュータ31は、マニピュレートコマンド75を受信すると、ロボットコントローラ32に転送する。

【0143】
ロボットコントローラ32は、ロボット座標系における、マニピュレートコマンド75に示される座標の位置へ把持部362を動かすようにマニピュレータドライバ37に指令する。

【0144】
すると、マニピュレータドライバ37は、右手移動量だけ把持部362が移動するようにアクチュエータ38を制御する。

【0145】
この処理を右手402の位置が変わるごとに行うことによって、把持部362が、右手402が動いた通りに動く。アーム部361は、オペレータ40の右腕が動いた通りに動かなくてもよい。

【0146】
また、前に説明した通り、アバター41の形状は、オペレータ40の三次元形状の変化に伴って変化する。したがって、アバター41の右手も、右手402が動いた通りに動く。

【0147】
よって、オペレータ40が右手402を動かすと、アバター41も同じように右手を動かし、さらに、ロボット3も同じように把持部362を動かす。つまり、右手402、アバター41の右手、および把持部362それぞれの動きのベクトルが、一致する。

【0148】
オペレータ40が把持部362を動作させたくないにも関わらず、オペレータ40が足踏みするとき、および、自分の正面の向きを変えるときにも、右手402が動くことがある。すると、オペレータ40の意思に反して把持部362が動作してしまう。

【0149】
そこで、オペレーションコンピュータ10は、右足403および左足404が動いていない場合にのみ、右手402の位置の変化を監視するようにしてもよい。

【0150】
また、オペレーションコンピュータ10は、右手402の位置の変化とともに、右手402の指の開閉を監視する。そして、指が閉じたことを検知した場合は、クローズコマンド76をロボットコンピュータ31に送信する。一方、指が開いたことを検知した場合は、オープンコマンド77をロボットコンピュータ31に送信する。

【0151】
ロボットコンピュータ31は、クローズコマンド76を受信すると、ロボットコントローラ32に転送する。

【0152】
ロボットコントローラ32は、クローズコマンド76を受信すると、把持部362を閉じるようにマニピュレータドライバ37に指令する。

【0153】
すると、マニピュレータドライバ37は、把持部362の複数の指同士の距離が徐々に短くなるようにアクチュエータ38を制御する。なお、いずれかの指に感圧センサを取り付けておき、感圧センサによって一定の圧力が検知されたら、これらの指の動作を停止させてもよい。

【0154】
一方、オープンコマンド77を受信すると、ロボットコンピュータ31は、把持部362を開くようにマニピュレータドライバ37に指令する。

【0155】
すると、マニピュレータドライバ37は、把持部362が完全に開いた状態になるようにアクチュエータ38を制御する。

【0156】
マニピュレートモジュール106によると、以上のように、右手402の動作に合わせて把持部362の位置を変えたり把持部362を閉じたり開いたりすることができる。

【0157】
〔物体の取扱いの具体例〕
オペレータ40は、第一の空間51の中で足踏みしたり、向きを変えたり、ヘッドマウントディスプレイ12に表示される画像を見たりしながら、仮想空間53の中でペン61およびパネル62を探す。ペン61およびパネル62を見つけたら、足踏みしたり、向きを変えたりしながら、ペン61およびパネル62の近くに移動しようとする。オペレータ40の動作に伴って、アバター41は仮想空間53の中を移動し、ロボット3は第二の空間52の中を移動する。

【0158】
さらに、オペレータ40は、右手402がペン61に届くように思えたら、右手402を伸ばす。右手402がペン61に届いたことを、ヘッドマウントディスプレイ12に表示される画像によって確認したら、右手402を閉じる。すると、アバター41は、ペン61を掴もうとする。さらに、第二の空間52の中で、ロボット3は、ペン61を把持部362によって掴む。

【0159】
そして、オペレータ40は、右手402を動かすことによって、ペン61をパネル62の表面のところまで移動させ、パネル62の表面にペン61の先が触れたように思えたら、円を描くように右手402を動かす。ハプテックスデバイスを用いて触覚や力覚をオペレータに提示することも可能である。すると、ロボット3は、右手402の動作に応じて把持部362を動作させる。これにより、パネル62の表面にペン61で円が描かれる。

【0160】
ヘッドマウントディスプレイ12に表示される画像は、アバター41の両目位置から見たものである。よって、オペレータ40は、仮想空間53に没入し、ロボット3の存在を意識することなく、自分自身の脚で移動し自分自身の手で物体を取り扱っている感覚を得ることができる。

【0161】
本例では、ペンを持って円を描くタスクを例に説明したが、組立て作業または加工作業の様なさらに複雑なタスク、あるいは特定の部位を単に動かすタスクのような簡単なタスクも、本発明における「タスク」に含まれる。また、オペレータ40が右手402でシャッタを切る仕草をするのに応じて、ロボット3がロボット3に備わるデジタルカメラで写真を撮影するなど、ロボットの動作が見た目に現われないタスクも含まれる。

【0162】
〔障害物の対策〕
図15は、障害物の対応の際にアバター40の視点を変えるために仮想空間53へ仮想ロボット3Aを配置しアバター41をシフトさせる例を示す図である。図16は、ヘッドマウントディスプレイ12に表示される画像の例を示す図である。図17は、障害物の対策の際のデータの流れの例を示す図である。図18は、ロボット3およびヘルプロボット3Xが協同する例を示す図である。

【0163】
ところで、移動中にロボット3が障害物に出会うことがある。オペレータ40およびアバター41ならば障害物を跨いで進むことができるが、ロボット3は進めないことがある。すると、アバター41の移動先の位置へロボット3が追随することができないことがある。

【0164】
このような場合に、ロボット3は、自律的に迂回してアバター41の移動先の位置へ移動することができる。

【0165】
しかし、ロボット3は、自律的に迂回する機能を用いてもアバター41の移動先の位置へ移動することできないことがある。そこで、ソリューションモジュール107が用いられる。ソリューションモジュール107によると、ロボット3に障害物を乗り越えさせたり障害物から後退させたりすることができる。

【0166】
ロボット3は、アバター41の移動先の位置へ移動することできない場合に、オペレーションコンピュータ10へその旨を通知する。すると、ヘッドマウントディスプレイ12にその旨のメッセージや画像情報が表示される。

【0167】
オペレータ40は、足踏みしているにも関わらずロボット3が前進しないことを、そのメッセージや画像情報によって知ったら、ソリューションコマンド81を入力する。

【0168】
または、前進コマンド73を受信し続けているにも関わらず前進しないことをモバイルドライバ34に検知させてもよい。そして、モバイルドライバ34は、障害通知信号82を、ロボットコンピュータ31を介してオペレーションコンピュータ10へ送信すればよい。

【0169】
オペレーションコンピュータ10は、ソリューションコマンド81が入力されまたは障害通知信号82を受信したら、オペレータ40およびアバター41とロボット3とのリンクを切断するために、移動情報演算モジュール104、移動コマンドモジュール105、およびマニピュレートモジュール106を停止する。

【0170】
オペレーションコンピュータ10は、仮想空間演算モジュール103によって、仮想空間53におけるオブジェクトの配置の変更の処理を次のように実行する。

【0171】
オペレーションコンピュータ10は、図15に示すように、仮想空間53の中の、第二の空間52におけるロボット3の現在の位置に対応する位置に、ロボット3の三次元形状を仮想した仮想ロボット3Aを配置する。仮想ロボット3Aの向きも、ロボット3の現在の向きに合わせる。

【0172】
さらに、オペレーションコンピュータ10は、アバター41を配置する位置を仮想ロボット3Aの真後ろへ所定の距離だけシフトさせる。例えば、仮想ロボット3Aの背面から20センチメートル後方へシフトさせる。なお、仮想ロボット3Aの三次元データは、ロボット3を三次元計測することによって予め用意しておけばよい。ロボットのCAD(Computer-aided Design)データを用いてもよい。

【0173】
そして、オペレーションコンピュータ10は、アバター生成モジュール102によってアバターデータ7Eが生成されまたは補正されると、ロボット3の現在の位置ではなく、シフト後の位置にアバター41を配置する。

【0174】
その後、オペレーションコンピュータ10は、アバター41のシフト後の両目位置から視線方向を見た様子を表わす画像の画像データ7Fを生成し、ヘッドマウントディスプレイ12へ送信する。

【0175】
そして、ヘッドマウントディスプレイ12は、画像データ7Fを受信するごとに、画像データ7Fが表わす画像を表示する。ただし、アバター41の位置がシフトしたので、図16のような、仮想ロボット3Aの背後から見た環境の様子の画像が表示される。

【0176】
オペレーションコンピュータ10は、ソリューションモジュール107によって、ロボット3に障害物を乗り越えさせたり障害物から後退させたりする処理を行う。以下、この処理を、図17を参照しながら説明する。

【0177】
オペレータ40は、画像を見ることによって、ロボット3の周囲の様子を確認する。ロボット3が障害物を乗り越えられそうであれば、ロボット3の背面を押すために、右手402および左手407を自分の前方へ伸ばし始める。

【0178】
右手402および左手407を伸ばしている途中で、仮想空間演算モジュール103の処理によって、アバター41の右手および左手が仮想ロボット3Aの背面に触れる様子の画像がヘッドマウントディスプレイ12に表示される。オペレータ40は、右手402および左手407をさらに伸ばし続ける。

【0179】
オペレーションコンピュータ10は、アバター41の右手および左手が仮想ロボット3Aの背面に達したことを検知すると、出力アップコマンド83をロボットコンピュータ31へ送信する。

【0180】
ロボットコンピュータ31は、出力アップコマンド83を受信すると、ロボットコントローラ32へ転送する。

【0181】
ロボットコントローラ32は、出力アップコマンド83を受信すると、回転数を通常よりも上げるようにモバイルドライバ34へ指令する。

【0182】
すると、モバイルドライバ34は、右車輪351および左車輪352が通常より高速に回転するように、または、通常よりも高い加速度で回転するように、モータ33を制御する。これにより、ロボット3が障害物を乗り越えられることもあれば、乗り越えられないこともある。あるいは、ロボット3が、フリッパーを備えるクローラ型ロボットの場合は、フリッパーの角度を障害物に合わせて調節し、障害物を踏破する。

【0183】
なお、右手402および左手407が伸びる速さに比例して右車輪351および左車輪352の回転数または加速度が高くなるように構成してもよい。この場合は、その速さをパラメータとして出力アップコマンド83に加えておけばよい。そして、モバイルドライバ34は、そのパラメータに応じた回転数または加速度で右車輪351および左車輪352が回転するようにモータ33を制御すればよい。次に説明する、ロボット3を後退させる場合も同様に、右手402を曲げる速さに応じて右車輪351および左車輪352の回転数または加速度が高くなるように構成してもよい。

【0184】
または、ロボット3が障害物を乗り越えられそうでない場合、または、乗り越えることができなかった場合は、オペレータ40は、筐体30またはマニピュレータ36を掴んでロボット3を後ろへ下げるために、右手402を自分の前方へ伸ばし始める。

【0185】
右手402を伸ばしている途中で、仮想空間演算モジュール103の処理によって、アバター41の右手が仮想ロボット3Aの筐体またはマニピュレータに触れる様子がヘッドマウントディスプレイ12に表示される。ここで、オペレータ40は、筐体またはマニピュレータを掴むように右手402を閉じ、筐体またはマニピュレータを自分のほうへ引っ張るように右手402を曲げ始める。

【0186】
すると、オペレーションコンピュータ10は、バックコマンド84をロボットコンピュータ31へ送信する。

【0187】
ロボットコンピュータ31は、バックコマンド84を受信すると、ロボットコントローラ32へ転送する。

【0188】
ロボットコントローラ32は、バックコマンド84を受信すると、後退するようにモバイルドライバ34へ指令する。

【0189】
すると、モバイルドライバ34は、右車輪351および左車輪352が逆回転するように、モータ33を制御する。これにより、ロボット3が後退する。

【0190】
または、オペレータ40は、足踏みしまたは方向を変えることによって、仮想ロボット3Aの後方から前方へアバター41を回り込ませ、仮想ロボット3Aの前面を押すことによって、仮想ロボット3Aを後退させてもよい。

【0191】
オペレータ40は、ロボット3に障害物を乗り越えさせることができ、または、ロボット3に後退させることができたら、再開コマンド78をオペレーションコンピュータ10に入力する。

【0192】
すると、オペレーションコンピュータ10は、仮想ロボット3Aを仮想空間53から削除し、ソリューションモジュール107の処理を終了する。そして、初期化モジュール101によって、再度、初期化の処理を行う。また、初期化後、アバター生成モジュール102、仮想空間演算モジュール103、移動情報演算モジュール104、移動コマンドモジュール105、およびマニピュレートモジュール106を再開する。これにより、オペレータ40およびアバター41とロボット3とが再びリンクするので、オペレータ40は、仮想空間53に没入して目的のタスクを再開することができる。ソリューションモジュール107を開始する前に仮想空間演算モジュール103によって算出された、仮想空間53にある物体の位置および姿勢のデータは、削除せずに再使用されればよい。

【0193】
本例では、オペレーションコンピュータ10は、右手402または左手407の動作に応じて出力アップコマンド83またはバックコマンド84をロボット3に送信することによって、ロボット3を動作させた。

【0194】
しかし、アバター41の位置に対応する、第二の空間52の位置に、ロボット3と同等の機能を有するヘルプロボットを出動させ、障害物を乗り越えたり障害物から後退したりするタスクをヘルプロボットに行わせてもよい。この場合は、オペレータ40およびアバター41を、ロボット3の代わりにヘルプロボットとリンクさせればよい。リンクの処理は、上述の通りである。そして、ヘルプロボットは、役割を終えたら、ロボット3のところから離れる。オペレーションコンピュータ10は、初期化モジュール101によって、再度、初期化の処理を行う。

【0195】
このように、ソリューションモジュール107によると、オペレータ40は、仮想空間53に没入し、ロボット3または仮想ロボット3Aに直接触れるような感覚で、障害物の対策を施すことができる。

【0196】
オペレーションコンピュータ10は、障害物の対策の処理を、障害物への遭遇以外の特定のイベントが生じた場合にも同様に行ってもよい。例えば、把持部362が右手402の動きに連動しなくなった場合、または、筐体30の内部を隠すためのパネルが開いてしまった場合に、同様の処理を行ってもよい。

【0197】
または、オペレーションコンピュータ10は、アバター41を仮想ロボット3Aの後方ではなく、前方、左方、または右方にシフトさせてもよい。

【0198】
または、マニピュレータ36の関節を曲げたり伸ばしたりする動作をオペレータ40が行った場合は、オペレーションコンピュータ10およびロボットコンピュータロボットコントローラ32は、その動作にマニピュレータ36を連動させるようにマニピュレータドライバ37に指令してもよい。

【0199】
なお、ロボット3は、把持部362によって物体を持ち上げることができない場合にも、ヘルプロボットを自律的に登場させ、ヘルプロボットと協同して物体を持ち上げてもよい。例えば、オペレータ40が椅子63を持ち上げる動作をしたが、ロボット3だけでは椅子63を持ち上げることができない場合に、ヘルプロボット3Xを出動させ、図18に示すようにロボット3とヘルプロボット3Xとが協同して椅子63を持ち上げればよい。ヘルプロボット3Xを呼び出す手段は、ロボットコンピュータ31に設けてもよいし、オペレーションコンピュータ10に設けてもよい。

【0200】
ロボット3は、単独でまたはヘルプロボット3Xと協同して、組立てまたは加工などの作業をタスクとして実行してもよい。

【0201】
ヘルプロボット3Xは、ロボット3と異なる構造体であっても構わない。例えばアーム付のドローンであってもよい。

【0202】
〔全体の流れ〕
図19~図21は、遠隔地のタスクを支援するための処理の流れの例を示すフローチャートである。

【0203】
次に、オペレーションコンピュータ10の全体的な処理の流れを、フローチャートを参照しながら説明する。

【0204】
オペレーションコンピュータ10は、タスク支援プログラム10jに基づいて、図19~図21に示す手順で処理を実行する。

【0205】
オペレーションコンピュータ10は、開始コマンド70が入力されると、初期化を次のように行う(#801~#805)。

【0206】
オペレーションコンピュータ10は、計測コマンド71を色距離センサ141~143へ送信することによって、オペレータ40のRGBDの計測を開始するように色距離センサ141~143に要求する(#801)。

【0207】
すると、色距離センサ141~143がRGBDを計測し始め、計測結果に基づいてモーションキャプチャコンピュータ16がオペレータ40の三次元形状を算出しその三次元形状を示す三次元データ7Bをオペレーションコンピュータ10へ送信し始める。これにより、オペレーションコンピュータ10は、三次元データ7Bを受信し始める(#802)。

【0208】
オペレーションコンピュータ10は、三次元データ7Bに基づいてオペレータ40の右手402、右足403、および左足404などの位置を検出し始める(#803)。

【0209】
そして、オペレーションコンピュータ10は、初期化コマンド72をロボット3へ送信する(#804)。すると、ロボット3が第二の空間52のRGBDの計測を開始し、オペレーションコンピュータ10は、RGBDデータ7Cをロボット3受信し始める(#805)。なお、初期化後は、さらにステータスデータ7Dも受信し始める。

【0210】
オペレーションコンピュータ10は、初期化が完了すると、オペレータ40の動作に応じて、移動に関するコマンドを次のようにロボット3に与える(#821~#828)。

【0211】
オペレーションコンピュータ10は、右足403または左足404の位置の変化を監視し(#821)、変化を検知するごとに(#822でYes)、距離Dstepを算出し(#823)、その距離Dstepをパラメータとして示す前進コマンド73をロボット3へ送信する(#824)。

【0212】
また、オペレーションコンピュータ10は、オペレータ40の向きの変化を監視し(#825)、変化を検知したら(#826でYes)、角度θhipを算出し(#827)、その角度θhipをパラメータとして示す方向転換コマンド74をロボット3へ送信する(図20の#828)。

【0213】
また、オペレーションコンピュータ10は、仮想空間53に関する処理を次のように行う(#841~#845)。

【0214】
オペレーションコンピュータ10は、RGBDデータ7Cおよびステータスデータ7Dに基づいて第二の空間52を再現することによって仮想空間53を仮想する(#841)。RGBDデータ7Cおよびステータスデータ7Dが得られるごとに、再現される範囲が広がる。

【0215】
さらに、オペレーションコンピュータ10、三次元データ7Bに基づいてアバター41を生成しまたは補正する(#842)。そして、仮想空間53にアバター41を配置する(#843)。なお、既にアバター41を配置済である場合は、最新の三次元データ7Bに示される三次元形状に合わせてアバター41を更新する。

【0216】
オペレーションコンピュータ10は、アバター41の両目位置から見た、仮想空間53の様子を表わす画像を生成し(#844)、その画像の画像データ7Fをヘッドマウントディスプレイ12へ送信する(#845)。これにより、ヘッドマウントディスプレイ12に画像が表示される。

【0217】
また、オペレーションコンピュータ10は、把持部362を動作させるための処理を次のように行う(#861~#863)。

【0218】
オペレーションコンピュータ10は、右手402の位置の変化および指の開閉を監視する(#861)。変化を検知したら(#862でYes)、変化に応じたコマンドをロボット3へ送信する(#863)。具体的には、右手402の位置の変化を検知した場合は、変化量をパラメータとして示すマニピュレートコマンド75を送信する。指が閉じるのを検知した場合は、クローズコマンド76を送信する。指が開くのを検知した場合は、オープンコマンド77を送信する。

【0219】
ステップ#821~#824の処理、ステップ#825~#828の処理、ステップ#841~#845の処理、およびステップ#861~#863の処理は、並行して適宜、実行される。

【0220】
また、オペレーションコンピュータ10は、ソリューションコマンド81が入力されまたはロボット3から障害通知信号82を受信すると(#871でYes)、障害物の対策のための処理を次のように行う(#872~#881)。

【0221】
オペレーションコンピュータ10は、オペレータ40およびアバター41とロボット3とのリンクを切断し(#872)、仮想空間53の中の、第二の空間52におけるロボット3の現在の位置に対応する位置に仮想ロボット3Aを配置する(#873)。仮想ロボット3Aの向きも、ロボット3の現在の向きに合わせる。アバター41を仮想ロボット3Aの後方へシフトさせる(図21の#874)。

【0222】
オペレーションコンピュータ10は、アバター41のシフト後の両目位置から視線方向を見た様子を表わす画像の画像データ7Fを生成し(#875)、ヘッドマウントディスプレイ12へ送信する(#876)。

【0223】
さらに、オペレーションコンピュータ10は、アバター41の右手などの部位の位置などを監視する(#877)。そして、アバター41の部位が仮想ロボット3Aの特定の部位に触れたことを検知すると(#878)、アバター41の部位のその後の動作に応じたコマンドをロボット3へ送信する(#879)。

【0224】
具体的には、アバター41の右手および左手が仮想ロボット3Aの背面に触れ、その後も仮想ロボット3Aを押す方向へ右手および左手が動こうとすると、オペレーションコンピュータ10は、出力アップコマンド83をロボット3に送信する。または、アバター41の右手が仮想ロボット3Aのマニピュレータに触れ、右手をアバター41の胴体の方向へ戻そうとすると、オペレーションコンピュータ10は、バックコマンド84をロボット3へ送信する。

【0225】
再開コマンド78が入力されると(#880でYes)、オペレーションコンピュータ10は、仮想ロボット3Aを仮想空間53から削除し(#881)、ステップ#801に戻って初期化を再度、行う。

【0226】
本実施形態によると、オペレータ40は、アバター41に乗り移るような感覚で仮想空間53に没入し、しかも、人間の身体と異なる構造であるロボット3の存在を意識することなく、ロボット3を介して第二の空間52でのタスクを行うことができる。

【0227】
本実施形態では、オペレータ40の足踏みに応じてアバター41が仮想空間53の中を移動し、ロボット3が第二の空間52の中を移動したが、オペレータ40が第一の空間51の中を歩いたり後ろに下がったりして移動するのに応じてアバター41およびロボット3が移動してもよい。この場合に、遠隔タスク実行システム5の各部は、次のように処理を行えばよい。

【0228】
オペレーションコンピュータ10の移動情報演算モジュール104は、オペレータ40の初期の位置を第一の空間座標系の原点に定める。初期化の時点では、第一の空間座標系のX1’軸、Y1’軸、およびZ1’軸(図2参照)は、それぞれオペレータ座標系のX1軸、Y1軸、およびZ1軸に一致する。しかし、オペレータ40が動くと、第一の空間座標系に対してオペレータ座標系も動く。

【0229】
移動情報演算モジュール104は、色距離センサ141~143によって得られた値または位置センサによって得られた値に基づいて、オペレータ40の第一の空間座標系における位置の座標を算出する。

【0230】
アバター生成モジュール102は、仮想空間座標系の、移動情報演算モジュール104によって算出された座標の位置へアバター41を移動させる。

【0231】
移動コマンドモジュール105は、第二の仮想空間座標系の、移動情報演算モジュール104によって算出された座標の位置へ移動するようにロボット3へ指令する。すると、ロボット3は、移動コマンドモジュール105からの指令に従って移動する。

【0232】
または、足踏みモードおよび歩行モードをオペレーションコンピュータ10に用意しておいてもよい。そして、オペレーションコンピュータ10は、足踏みモードが指定された場合は、足踏みに応じてアバター41およびロボット3を移動させ、歩行モードが指定された場合は、第一の空間座標系におけるオペレータ40の位置に応じてアバター41およびロボット3を移動させてもよい。

【0233】
〔制御対象の変形例〕
図22は、パワーアシストスーツ300が制御の対象である場合の、第一の空間51、第二の空間52、および仮想空間53の例を示す図である。図23は、パワーアシストスーツ300が制御の対象である場合の、第一の空間51、第二の空間52、および仮想空間53の第二の例を示す図である。

【0234】
本実施形態では、ロボット3が障害物に遭遇した場合に、オペレータ40およびアバター41とロボット3とのリンクを切断し、ソリューションモジュール107によってオペレータ40の動作に応じて障害物をロボット3に乗り越えさせまたは障害物から後退させた。この際に、オペレータ40は、仮想空間53に没入し、ロボット3または仮想ロボット3Aに直接触れるような感覚でロボット3を動作させることができた。

【0235】
ソリューションモジュール107による処理を、第二の空間52にある他の物体を動作させるために適用してもよい。例えば、パワーアシストスーツ300を動作させるために適用してもよい。

【0236】
以下、パワーアシストスーツ300として、サイバーダイン社のHAL(Hybrid Assistive Limb)医療用下肢タイプまたはHAL福祉用下肢タイプのような、下肢をサポートするパワーアシストスーツが用いられ、オペレータ40が熟練者としてゴルフのスイングの際の下半身の動作を初心者である人物46に教える場合を例に、遠隔タスク実行システム5の各要素の構成について、説明する。上述の構成と重複する点は、説明を省略する。

【0237】
〔準備〕
第二の空間52に、複数台の色距離センサ39A~39Cを配置する。人物46が、パワーアシストスーツ300を着用し、第二の空間52の中に立つ。色距離センサ39A~39Cは、人物46およびその周囲の物体のRGBDを計測し、計測結果をオペレーションコンピュータ10に送信する。

【0238】
オペレーションコンピュータ10は、色距離センサ39A~39Cそれぞれから計測結果を受信すると、仮想空間演算モジュール103によってこれらの計測結果に基づいて第二の空間52を再現することによって、仮想空間53を仮想する。これにより、人物46のアバター47が、パワーアシストスーツ300が着用された状態で仮想空間53に現われる。以下、仮想空間53に現われるパワーアシストスーツ300を「仮想パワーアシストスーツ301」と記載する。

【0239】
オペレーションコンピュータ10は、アバター生成モジュール102によってアバター41を生成し、仮想空間演算モジュール103によって仮想空間53の中の、アバター47の背中から所定の距離だけ離れた位置にアバター41を配置する。例えば、50センチメートル離れた位置に配置する。

【0240】
または、仮想パワーアシストスーツ301の三次元データを、パワーアシストスーツ300を三次元計測することによって予め用意しておいてもよい。そして、この三次元データを用いて仮想パワーアシストスーツ301に配置してもよい。

【0241】
アバター41およびアバター47を仮想空間53の中に配置した後、オペレーションコンピュータ10は、アバター41の両目位置から視線方向に仮想空間53の中を見た画像の画像データ7Fを生成し、ヘッドマウントディスプレイ12へ送信する。そして、ヘッドマウントディスプレイ12は、画像データ7Fに基づいて画像を表示する。これにより、オペレータ40は、自分が人物46の背後にいるように感じることができる。

【0242】
一般のパワーアシストスーツは、生体の電位信号に応じて動作する。しかし、パワーアシストスーツ300は、無線LANの装置が設け、生体の電位信号の代わりに、オペレーションコンピュータ10から送信されてくるコマンドに応じて動作するように構成されている。

【0243】
〔パワーアシストスーツ300の制御〕
オペレータ40は、仮想パワーアシストスーツ301を触るような感覚で、パワーアシストスーツ300を動作させることができる。

【0244】
人物46がスイングすると、アバター47がスイングしている画像がヘッドマウントディスプレイ12によって表示される。

【0245】
オペレータ40は、その画像を見ることによって、人物46のフォームを確認する。下半身の動作に問題点を見つけたら、人物46にゆっくりとスイングしてもらう。この際に、どのように下半身を動作させればよいのかを、まるでパワーアシストスーツ300を直接触って動かすように、右手402および左手407を動かして指導する。

【0246】
すると、オペレーションコンピュータ10は、仮想空間53においてアバター41の右手および左手と仮想パワーアシストスーツ301とが接触したことを検知したら、右手402および左手407それぞれのその後の動きをパラメータとして示す動作コマンド86をパワーアシストスーツ300へ送信する。接触の検知および動作コマンド86の送信は、例えばマニピュレートコマンドモジュール106によって行えばよい。または、マニピュレートコマンドモジュール106とは別のモジュールを用意し、それによって行ってもよい。

【0247】
パワーアシストスーツ300は、動作コマンド86を受信すると、動作コマンド86に示される動作の通りに動作する。

【0248】
例えば、人物46の右膝が伸びている問題点として見つけたら、オペレータ40は、仮想パワーアシストスーツ301の右膝またはその付近の部分を持って人物46の右膝を曲げるかのように、右手402および左手407を動かす。すると、この動きをパラメータとして示す動作コマンド86がオペレーションコンピュータ10からパワーアシストスーツ300へ送信される。そして、パワーアシストスーツ300は、動作コマンド86に示される動きの通りに動作する。

【0249】
または、人物46の腰の捻り方に問題があると思ったら、オペレータ40は、仮想パワーアシストスーツ301の腰の部分を持って人物46の腰を正しい捻り方で捻るかのように、右手402および左手407を動かす。すると、この動きをパラメータとして示す動作コマンド86がオペレーションコンピュータ10からパワーアシストスーツ300へ送信される。そして、パワーアシストスーツ300は、動作コマンド86に示される動きの通りに動作する。

【0250】
なお、パワーアシストスーツ300の上述の制御の仕方は、一例に過ぎない。例えば、予め、両手でパワーアシストスーツ300のどの部位をどのように動かせばどのような電位信号を発生させるのかを実験によって求め、両手の動き、パワーアシストスーツ300の部位、および電位信号の関係を示すデータをデータベースに登録しておいてもよい。

【0251】
そして、オペレーションコンピュータ10は、アバター41の両手が仮想パワーアシストスーツ301に接した後、接した部位、右手402および左手407の動き、およびこのデータに基づいて電位信号を算出し、パワーアシストスーツ300へ通知してもよい。パワーアシストスーツ300は、通知された電位信号に基づいて動作する。

【0252】
本実施形態の技術をパワーアシストスーツ300に適用することによって、オペレータ40は、人物46から離れた場所にいながらリアルタイムで、従来よりも安全に人物46にフォームを指導することができる。

【0253】
パワーアシストスーツ300として、上半身をサポートするパワーアシストスーツを用いてもよい。また、ゴルフのスイング以外の技術を伝えるためにも、本変形例を適用することができる。例えば、陶芸、建築、もしくは彫刻などの匠の技術または舞踊、演劇、もしくは書画などの芸能の継承にも適用することができる。

【0254】
本変形例は、パワーアシストスーツ300以外の機械にも適用することができる。例えば、自動運転の機能を有する乗物に適用することができる。

【0255】
または、図23に示すようにオペレータ40もパワーアシストスーツ302を着けてもよい。そして、パワーアシストスーツ302は、オペレータ40の動作を検知すると、パワーアシストスーツ300へ通知する。すると、パワーアシストスーツ300は、オペレータ40の動作に応じて動作する。または、パワーアシストスーツ300は、人物46の動作を検知すると、パワーアシストスーツ302へ通知してもよい。そして、パワーアシストスーツ302は、人物46の動作に応じて動作すればよい。これにより、オペレータ40は、人物46の動作を体感し、人物46の動作の癖または良し悪しを判断することができる。

【0256】
〔その他の変形例〕
本実施形態では、初期化モジュール101ないしソリューションモジュール107(図4参照)は、ソフトウェアモジュールであった。しかし、これらのモジュールの全部または一部をハードウェアモジュールによって実現してもよい。

【0257】
本実施形態では、オペレータ40の三次元形状を色距離センサ14およびRGBDをモーションキャプチャコンピュータ16によって算出したが、三次元計測装置によって計測してもよい。

【0258】
本実施形態では、把持部362がペン61を掴む場合を例に説明した。しかし、把持部362が持ち上げることができる重さよりも重い物を掴む場合は、オペレータ40は、その物を思い通りに取り扱うことができない。そこで、このような場合は、ロボット3は、ロボット3のところへ補助のロボットを出動させ、補助のロボットと共同してその物を持ち上げたり移動させたりしてもよい。

【0259】
本実施形態では、オペレータ40は、自分の思い通りにロボット3が進まない場合にソリューションコマンド81を入力したが、いつ入力しても構わない。例えば、ロボット3の様子を確認したい場合に入力してもよい。これにより、オペレータ40は、車輪35およびマニピュレータ36など、オペレータ40およびアバター41がロボット3とリンクしている際には確認しにくい部分を、容易に確認することができる。

【0260】
本実施形態では、オペレーションコンピュータ10は、オペレータ40およびアバター41がロボット3とリンクしている際には、仮想ロボット3Aを仮想空間53に配置しなかったが、ロボット3の状態を確認するためにユーザが配置コマンドを入力した際に、一時的に、または、解除コマンドが入力されるまで配置してもよい。これにより、オペレータ40は、右手402と把持部362とがきちんと連動しているか否かを確認することができる。これにより、オペレータ40は常にロボット3の実際の動作を監視しながらタスクを実現できる。

【0261】
本実施形態では、第二の空間52の様子が仮想空間53の画像によってオペレータ40へ伝えられたが、他の手段で様子を伝えてもよい。

【0262】
例えばロボット3が障害物に接触するなど物体に干渉した際に、オペレーションコンピュータ10のスピーカ10gから接触音を出力してもよい。障害物に接触したことは、ロボット3のセンサによって検知すればよい。または、仮想空間演算モジュール103によって算出される、ロボット3の位置および物体の位置に基づいて検知してもよい。接触音は、予め録音しまたは合成した音声であってもよいし、ロボット3にマイクを付けておき実際に接触した際に集音したものであってもよい。接触したことを示すメッセージを色距離センサ14または液晶ディスプレイ10fによって表示してもよい。障害物が壊れる様子を色距離センサ14によって表示してもよい。

【0263】
または、把持部362の指に力覚センサを設けておき、物体を掴んだ際の力またはモーメントを測定させる。または、把持部362に触感センサを設けておき、物体の滑り感またはザラザラ感を検知させる。そして、オペレーションコンピュータ10は、計測結果または検知結果をヘッドマウントディスプレイ12または液晶ディスプレイ10fによって表示させる。または、オペレータ40の右手402に触覚グローブを嵌めておき、物体を掴んだ感覚を計測結果または検知結果に基づいて触覚グローブによってオペレータ40に伝えてもよい。触覚グローブとして、Dexta Robotics社のDexmoまたはSenso Devices社のSenso Gloveなどが用いられる。

【0264】
本実施形態では、ペン61でパネル62に絵を描くためにロボット3を使用する場合を例に説明したが、ロボット3を災害現場、事故現場、または宇宙空間などで使用することもできる。

【0265】
オペレータ40の動きに合わせてアバター41は直ちに動くが、アバター41の動きとロボット3の動きとの間に時差が生じる場合がある。例えば、ロボット3が月面に配置されオペレータ40が地球上で作業する場合は、コマンドの到達に要する時間が経過してから、月面上でロボット3が動作する。また、ロボット3の動作速度がアバター41の動作速度より遅い場合には、オペレータ40またはアバター41の動きに遅れてロボット3が動作することになる。例えば、ロボット3の移動速度がオペレータ40の移動速度より遅い場合、オペレータ40が移動して椅子を持ち上げると、ロボット3は移動に時間がかかる分遅れて椅子を持ち上げることになる。この場合は、オペレータ40の動作のログを取っておき、ログに基づいてロボット3を制御する。

【0266】
あるいは、仮想空間では遅れがないように動作し、物理シミュレータでロボット3の運動をシミュレートし、シミュレーション結果を用いて仮想空間内ではオペレータ40とアバター41とを同期させ動作させる。そして、アバターの41の動きを示すデータをメモリに入れておき、ロボット3に順次送信する。シミュレータ上のロボット3あるいは実空間のロボット3が作業に失敗した場合には、オペレータ40にその旨を知らせ、メモリのデータによりアバター41の状態を作業を失敗する直前の時点の状態に戻し、仮想空間の状況を戻すことにより、リカバリー動作を開始することができる。

【0267】
本実施形態では、ロボット3に移動手段として車輪35が2つ設けられた場合を例に説明したが、車輪35が4つまたは6つ設けられていてもよい。または、キャタピラが設けられていてもよい。または、ロボット3の底部にスクリューを設け、ロボット3が水上または水中を移動できるようにしてもよい。様々なロボットを用意し、災害現場または事故現場の状況に応じてロボットを使い分けてもよい。

【0268】
本実施形態では、オペレータ40の右手402の動作にロボット3の把持部362を連動させたが、ロボット3にマニピュレータ36が2本ある場合は、右のマニピュレータ36の把持部362をオペレータ40の右手402に連動させ、左のマニピュレータ36の把持部362をオペレータ40の左手407に連動させればよい。

【0269】
または、ロボット3に右足および左足が備わっている場合は、ロボットの右足および左足をそれぞれオペレータ40の右足403および左足に連動させてもよい。

【0270】
本実施形態では、アバター41を拡大することも縮小することもなく仮想空間53に配置したが、拡大しまたは縮小して配置してもよい。例えば、ロボット3がネズミのような小動物と同じくらいの大きさならば、この大きさに合わせてアバター41を縮小して配置してもよい。そして、アバター41およびロボット3を、オペレータ40の動きのうちの、オペレータ40の大きさに対するアバター41の大きさ割合に応じただけ、動かすようにすればよい。または、アバター41の大きさを変更せず、アバター41およびロボット3の動きのスケールを、その割合に応じて変更してもよい。

【0271】
本実施形態では、ロボット3は、第二の空間52に存在する物体を、色距離センサ39によって得られたRGBDデータ7Cなどに基づいて検知した。しかし、物体ごとに、各物体の位置、三次元形状、および特性などを記録したIC(Integrated Circuit)タグを付けておき、ICタグからのこれらの情報を読み取ることによって検知してもよい。

【0272】
〔実験の結果の例〕
図24は、実験の結果の例を示す図である。

【0273】
次に、遠隔タスク実行システム5を用いて行った実験例について説明する。パネル62には、外径が400ミリメートル、内径が300ミリメートルの帯状の円が予め描かれている。円の中心の床面からの高さは、約0.6メートルである。本実験のタスクは、パネル62から約1.7メートル離れた位置からロボット3をパネル62のところへ移動させ、ペン61で円を描くことである。本実験では、ペン61は、既に把持部362によって掴まれている。オペレータ40は、予めヘッドマウントディスプレイ12を装着している。

【0274】
オペレータ40は、その場で足踏みすることによってロボット3をパネル62の近くへ移動させ、パネル62に右手402が届くと感じたら、予め描かれている円をなぞるように、パネル62にペン61を当てて右手402を動かす。なお、本実施形態では、パネル62に接近したら、仮想ロボット3Aを仮想空間53に配置することによって、仮想ロボット3Aの把持部の位置をオペレータ40が把握しやすいようにした。

【0275】
本実験の比較実験として、次のような実験を行った。ヘッドマウントディスプレイ12ではなく、23インチの一般的な液晶ディスプレイに、仮想空間53にアバター41を配置せず仮想ロボット3Aを配置して、仮想空間53の様子を表わす画像を表示した。さらに、被験者つまりオペレータ40は、この画像を見ながら、スティックおよびボタンを有するゲームコントローラを用いてロボット3を操作した。表示される画像すなわち仮想空間53を見る視点は、マウスによってオペレータ40がいつでも自由に変更できるようにした。そして、ゲームコントローラによって予め描かれている円をペン61でなぞる。

【0276】
本実験および比較実験によって、図24に示すような結果が得られた。図24に示す星状のマークは、有意水準α=0.05とした対応のある場合の両側t検定によって、本実験と比較実験とに有意差が認められたことを示している。

【0277】
図24(A)および(B)から、オペレータ40は、アバター41が自分自身の身体であるかのように感じることが分かる。図24(C)および(D)から、比較実験の場合よりも本実験の場合のほうが、オペレータ40は仮想空間53にいるように感じることが分かる。図4(E)、(F)、および(G)から、比較実験よりも本実験例のほうが、オペレータ40は普段通りの感覚が得られることが分かる。
【産業上の利用可能性】
【0278】
本発明は、ロボットなどの機械を介して、オペレータが遠隔的に作業したり熟練者の技能の初心者に伝えたりするために、用いられる。
【符号の説明】
【0279】
5 遠隔タスク実行システム(ロボット制御システム、機械制御システム)
10a CPU
10b RAM
10h スピーカ(報知手段)
103 仮想空間演算モジュール(表示手段)
104 移動情報演算モジュール(第二の制御手段)
105 移動コマンドモジュール(第二の制御手段)
106 マニピュレートコマンドモジュール(制御手段)
107 ソリューションモジュール(第三の制御手段)
12 ヘッドマウントディスプレイ(ディスプレイ)
3 ロボット
3A 仮想ロボット
362 把持部(第一の部位)
300 パワーアシストスーツ(機械)
40 オペレータ
402 右手(第二の部位)
41 アバター
52 第二の空間(空間)
53 仮想空間
61 ペン(物体)
63 椅子(物体)
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13
【図15】
14
【図16】
15
【図17】
16
【図18】
17
【図19】
18
【図20】
19
【図21】
20
【図22】
21
【図23】
22
【図24】
23