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

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

▶ 学校法人立命館の特許一覧

特開2024-120481模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム
<>
  • 特開-模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム 図1
  • 特開-模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム 図2
  • 特開-模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム 図3
  • 特開-模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム 図4
  • 特開-模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024120481
(43)【公開日】2024-09-05
(54)【発明の名称】模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステム
(51)【国際特許分類】
   A63B 69/00 20060101AFI20240829BHJP
   B25J 13/08 20060101ALI20240829BHJP
   A63B 69/34 20060101ALI20240829BHJP
【FI】
A63B69/00 Z
B25J13/08 A
A63B69/00 513C
A63B69/00 513D
A63B69/00 513A
A63B69/00 513B
A63B69/00 513Z
A63B69/34
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023027303
(22)【出願日】2023-02-24
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 公開の事実1:令和4(2022)年12月13日、第23回計測自動制御学会システムインテグレーション部門講演会(SI2022)Web概要集及び予稿集にて公開 公開の事実2:令和4(2022)年12月15日、第23回計測自動制御学会システムインテグレーション部門講演会(SI2022)にてポスター発表
(71)【出願人】
【識別番号】593006630
【氏名又は名称】学校法人立命館
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】玄 相昊
(72)【発明者】
【氏名】渡邊 悠希
(72)【発明者】
【氏名】堀川 皓史
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707CS08
3C707JU12
3C707JU14
3C707KS04
3C707KS31
3C707KS36
3C707KT01
3C707KT06
3C707KW01
3C707LW12
3C707WA16
(57)【要約】
【課題】模擬オポーネントが、単に、相手との距離を一定に保つだけではなく、相手の動作の種類に応じた適切な行動することが望まれる。
【解決手段】開示のシステムは、模擬オポーネントの制御システムであって、人であるプレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、前記模擬オポーネントを動作させる動作データを、前記プレーヤーの前記第1データに基づいて生成する動作生成器と、を備え、前記動作生成器は、前記第1データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データを入力することで、前記動作データを生成するよう構成されている。
【選択図】図2
【特許請求の範囲】
【請求項1】
模擬オポーネントの制御システムであって、
人であるプレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、
前記模擬オポーネントを動作させる動作データを、前記プレーヤーの前記第1データに基づいて生成する動作生成器と、
を備え、
前記動作生成器は、前記第1データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データを入力することで、前記動作データを生成するよう構成されている
制御システム。
【請求項2】
前記動作生成モデルは、前記プレーヤーの前記第1データ及び前記模擬オポーネントの位置を示す第2データが入力されると、前記動作データを出力するよう機械学習されており、
前記動作生成器は、前記動作生成モデルに対して、前記第1データ及び前記第2データを入力することで、前記動作データを生成するよう構成されている
請求項1に記載の制御システム。
【請求項3】
前記動作データは、前記プレーヤーと前記模擬オポーネントとの相対的な距離を変動させるよう前記模擬オポーネントを動作させるデータである
請求項1に記載の制御システム。
【請求項4】
前記模擬オポーネントの動作を人が操作するための操作器から出力された動作データに基づいて前記模擬オポーネントが動作しているときにおける前記プレーヤーの位置姿勢を示す第1学習データと、前記操作器から出力された前記動作データと、を用いて、前記動作生成モデルの機械学習を実行する動作学習器を更に備える
請求項1に記載の制御システム。
【請求項5】
模擬オポーネントの動作生成モデルの機械学習をコンピュータによって実行させる学習方法であって、
前記動作生成モデルは、人であるプレーヤーの位置姿勢を示す第1データが入力されると、前記模擬オポーネントの動作データを出力するよう構成され、
前記学習方法は、前記模擬オポーネントの動作を人が操作するための操作器から出力された動作データに基づいて前記模擬オポーネントが動作しているときにおける前記プレーヤーの位置姿勢を示す第1学習データと、前記操作器から出力された前記動作データと、を用いて、前記動作生成モデルの機械学習を実行する、
ことを備える学習方法。
【請求項6】
人であるプレーヤーの動きに応じて自走動作する模擬オポーネントと、
前記プレーヤーを撮像するセンサと、
前記模擬オポーネントの位置を検出して第2データを出力する位置検出器と、
前記センサで撮像した画像データ又は動画データに基づき前記プレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、
前記第1データおよび前記第2データに基づいて前記模擬オポーネントを前記プレーヤーの動きに応じて自走動作させる動作データを生成する動作生成器と、
前記動作データに基づいて前記模擬オポーネントを自走動作させる駆動装置に指示をする制御装置と、
を備え、
前記動作生成器は、前記第1データ及び前記第2データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データ及び前記第2データを入力することで、前記動作データを生成するよう構成されている
模擬オポーネントシステム。
【請求項7】
前記模擬オポーネントは、走行体と、前記走行体に搭載された標的と、を備える
請求項6に記載の模擬オポーネントシステム。
【請求項8】
前記模擬オポーネントは、転倒状態から起立状態への自己復元力を生じさせる重心位置を有する自己復元機構を備える
請求項7に記載の模擬オポーネントシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステムに関する。
【背景技術】
【0002】
格闘技などの練習相手を無人化する試みは、従来から行われている。例えば、特許文献1には、自走式格闘技練習装置が記載されている。特許文献1に記載の練習装置は、練習者を感知する感知手段を備え、練習者の近接及び離隔移動に関する情報をもとに、駆動走行手段及び駆動旋回手段を制御する。
【0003】
特許文献1に記載の練習装置は、練習者の動きを感知して自動的に練習装置を走行移動させることで、練習者と練習装置を一定の距離を隔てて対面させ、仕掛け技、応じ技の練習を連続して行うことを可能とすることを目的としている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001-62020号公報
【発明の概要】
【0005】
特許文献1に開示の練習装置は、練習者の移動を感知して、練習者との距離を一定に保って移動するものにすぎず、練習相手又は対戦相手として不十分なことがある。
【0006】
例えば、格闘技などの訓練・練習では、相手との間合いを取りながら、相手に打撃を与えるスパーリングが行われることがある。スパーリングにおいては、巧みに相手との間合いを取りつつ、相手に技を繰り出す必要がある。このため、効果的な練習のためには、スパーリング相手は、単に、一定距離を保って移動するものよりも、自ら機敏に動き回るものが好ましい。
【0007】
このように、無人化した練習相手又は対戦相手(以下、「模擬オポーネント」という)は、単に、相手との距離を一定に保つだけではなく、相手の動作の種類に応じた適切な行動をすることが望まれる。
【0008】
本開示のある側面は、模擬オポーネントの制御システムである。開示のシステムは、人であるプレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、前記模擬オポーネントを動作させる動作データを、前記プレーヤーの前記第1データに基づいて生成する動作生成器と、を備え、前記動作生成器は、前記第1データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データを入力することで、前記動作データを生成するよう構成されている。
【0009】
本開示の他の側面は、学習方法である。開示の学習方法は、模擬オポーネントの動作生成モデルの機械学習をコンピュータによって実行させる。前記動作生成モデルは、人であるプレーヤーの位置姿勢を示す第1データが入力されると、前記模擬オポーネントの動作データを出力するよう構成され、前記学習方法は、前記模擬オポーネントの動作を人が操作するための操作器から出力された動作データに基づいて前記模擬オポーネントが動作しているときにおける前記プレーヤーの位置姿勢を示す第1学習データと、前記操作器から出力された前記動作データと、を用いて、前記動作生成モデルの機械学習を実行する。
【0010】
本開示の他の側面は、模擬オポーネントシステムである。開示のシステムは、人であるプレーヤーの動きに応じて自走動作する模擬オポーネントと、前記プレーヤーを撮像するセンサと、前記模擬オポーネントの位置を検出して第2データを出力する位置検出器と、前記センサで撮像した画像データ又は動画データに基づき前記プレーヤー位置姿勢を示す第1データを求める位置姿勢推定器と、前記第1データおよび前記第2データに基づいて前記模擬オポーネントを前記プレーヤーの動きに応じて自走動作させる動作データを生成する動作生成器と、前記動作データに基づいて前記模擬オポーネントを自走動作させる駆動装置に指示をする制御装置と、を備え、前記動作生成器は、前記第1データ及び前記第2データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データ及び前記第2データを入力することで、前記動作データを生成するよう構成されている。
【0011】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0012】
図1図1は、実施形態に係る模擬オポーネントシステムの構成図である。
図2図2は、制御システム及び模擬オポーネントのブロック図である。
図3図3は、機械学習の手順を示すフローチャートである。
図4図4は、自律動作の手順を示すフローチャートである。
図5図5は、模擬オポーネントの自己復元動作の説明図である。
【発明を実施するための形態】
【0013】
<1.格闘技の模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステムの概要>
【0014】
(1)実施形態に係るシステムは、模擬オポーネントの制御システムであり得る。制御システムは、人であるプレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、前記模擬オポーネントを動作させる動作データを、前記プレーヤーの前記第1データに基づいて生成する動作生成器と、を備え得る。
【0015】
前記動作生成器は、前記第1データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データを入力することで、前記動作データを生成するよう構成され得る。
【0016】
実施形態に係る動作生成器は、人であるプレーヤーの位置姿勢から、機械学習された動作生成モデルによって、模擬オポーネントの動作データを生成することができる。実施形態に係るシステムは、プレーヤーの位置姿勢に応じて、模擬オポーネントを動作させることができるため、プレーヤーの動作に応じた反射動作を模擬オポーネントにとらせることができる。したがって、模擬オポーネントは、相手との距離を一定に保つだけではなく、相手の動作の種類に応じた適切な行動をすることが可能である。
【0017】
模擬オポーネントが、格闘技のためのものである場合、模擬オポーネントの反射動作は、例えば、プレーヤーの攻撃を避ける動作、プレーヤーの攻撃を受ける動作、プレーヤーを攻撃する動作、及びプレーヤーの動きを誘うフェイント動作の少なくともいずれか一つ又はそれらの組み合わせである。機械学習によって、このような複雑な反射動作を、模擬オポーネントに実行させることができる。なお、模擬オポーネントは、格闘技のためのものに限らず、プレーヤーの相手が必要とされる競技・その他の運動のためのものであってもよい。
【0018】
プレーヤーの動作に応じた反射動作を行う模擬オポーネントは、プレーヤーの動作に応じて自ら機敏に動き回ることができる。したがって、プレーヤーは、この模擬オポーネントを相手としてスパーリングをすると、効果的に練習を行うことができる。また、プレーヤーは、この模擬オポーネントを相手として対戦することもできる。
【0019】
ここで、格闘技は、相手(オポーネント:opponent)と対戦する競技又はスポーツであり、相手に対する攻撃及び相手からの攻撃に対する防御が行われ得る。格闘技は、打撃系格闘技、組技系格闘技、及び総合系格闘技のいずれであってもよいが、好ましくは打撃系格闘技などの打撃が行われる格闘技である。なお、ここでの格闘技は、人の体で攻撃するもののほか、フェンシング及び剣道のように道具で相手を攻撃するものを含むものとする。
【0020】
打撃系格闘技は、殴る又は蹴るなどの打撃行為が行われる格闘技である。打撃系格闘技は、例えば、空手、ボクシング、キックボクシング、ムエタイ、テコンドーである。組技系格闘技は、投げ技、寝技、関節技、締め技などの組技が行われる格闘技である。組技系格闘技は、例えば、レスリング、柔道、相撲である。総合系格闘技は、打撃及び組技の両方が行われる格闘技である。
【0021】
模擬オポーネントが格闘技のためのものである場合、模擬オポーネントは、格闘技のプレーヤーの練習相手又は対戦相手となる対象であり、人ではなく、模擬的な相手である。模擬オポーネントは、プレーヤーからの攻撃を受ける標的を備え得る。模擬オポーネントは、例えば、プレーヤーの動作に応じて動作するロボットである。模擬オポーネントは、それ自体が人でなければよく、人である操作者によって操作されてもよい。
【0022】
なお、人であるプレーヤーは、1又は複数であり得る。模擬オポーネントは、1又は複数であり得る。また、模擬オポーネントが、人である操作者によって操作される場合、操作者は、1又は複数であり得る。複数の模擬オポーネントは、それぞれ異なる操作者によって操作されてもよいし、一人の操作者によって操作されてもよい。
【0023】
(2)前記動作生成モデルは、前記プレーヤーの前記第1データ及び前記模擬オポーネントの位置を示す第2データが入力されると、前記動作データを出力するよう機械学習されているのが好ましい。前記動作生成器は、前記動作生成モデルに対して、前記第1データ及び前記第2データを入力することで、前記動作データを生成するよう構成され得る。
【0024】
(3)前記動作データは、前記プレーヤーと前記模擬オポーネントとの相対的な距離を変動させるよう前記模擬オポーネントを動作させるデータであり得る。
【0025】
(4)実施形態に係る制御システムは、前記模擬オポーネントの動作を人が操作するための操作器から出力された動作データに基づいて前記模擬オポーネントが動作しているときにおける前記プレーヤーの位置姿勢を示す第1学習データと、前記操作器から出力された前記動作データと、を用いて、前記動作生成モデルの機械学習を実行する動作学習器を更に備え得る。
【0026】
(5)実施形態に係る方法は、模擬オポーネントの動作生成モデルの機械学習をコンピュータによって実行させる学習方法であり得る。前記動作生成モデルは、人であるプレーヤーの位置姿勢を示す第1データが入力されると、前記模擬オポーネントの動作データを出力するよう構成され得る。前記学習方法は、前記模擬オポーネントの動作を人が操作するための操作器から出力された動作データに基づいて前記模擬オポーネントが動作しているときにおける前記プレーヤーの位置姿勢を示す第1学習データと、前記操作器から出力された前記動作データと、を用いて、前記動作生成モデルの機械学習を実行する、ことを備え得る。
【0027】
(6)実施形態に係るシステムは、模擬オポーネントシステムであり得る。模擬オポーネントシステムは、人であるプレーヤーの動きに応じて自走動作する模擬オポーネントと、前記プレーヤーを撮像するセンサと、前記模擬オポーネントの位置を検出して第2データを出力する位置検出器と、前記センサで撮像した画像データ又は動画データに基づき前記プレーヤーの位置姿勢を示す第1データを求める位置姿勢推定器と、前記第1データおよび前記第2データに基づいて前記模擬オポーネントを前記プレーヤーの動きに応じて自走動作させる動作データを生成する動作生成器と、前記動作データに基づいて前記模擬オポーネントを自走動作させる駆動装置に指示をする制御装置と、を備え、前記動作生成器は、前記第1データ及び前記第2データが入力されると前記動作データを出力するよう機械学習された動作生成モデルに対して、前記第1データ及び前記第2データを入力することで、前記動作データを生成するよう構成され得る。
【0028】
(7)前記模擬オポーネントは、走行体と、前記走行体に搭載された標的と、を備え得る。
【0029】
(8)前記模擬オポーネントは、転倒状態から起立状態への自己復元力を生じさせる重心位置を有する自己復元機構を備え得る。
【0030】
<2.格闘技の模擬オポーネントの制御システム、学習方法、及び模擬オポーネントシステムの例>
【0031】
図1及び図2は、実施形態に係る模擬オポーネントシステム10の一例を示している。模擬オポーネントシステム10は、人であるプレーヤーAの相手となる模擬オポーネント600を動作させる。図示の模擬オポーネントシステム10は、模擬オポーネント600と、模擬オポーネント600を制御する制御システム100と、を備える。
【0032】
プレーヤーAは、模擬オポーネント600を相手に、例えば、格闘技の練習又は対戦をすることができる。練習は、例えば、スパーリングである。対戦は、試合であってもよいし、楽しむためのゲームであってもよい。実施形態に係る模擬オポーネント600は、プレーヤーAの動きを認識し、プレーヤーAの状況に応じた反射動作をする。したがって、プレーヤーAは、効果的な格闘技の練習、又は、適切な対戦をすることができる。また、プレーヤーAは、健康づくり又はエクササイズのために、模擬オポーネント600を相手に運動をしてもよい。
【0033】
図1に示す制御システム100は、第1コンピュータ300及び第2コンピュータ400を含む複数のコンピュータを備える。第1コンピュータ300は、ビジョン処理装置300として動作する。ビジョン処理装置300は、プレーヤーA及び模擬オポーネント600のいずれか一方又は両方を撮像するカメラ200によって撮像された映像を取得して処理する。なお、以下では、カメラ200は、一例として、プレーヤーA及び模擬オポーネント600の両方を撮像できるよう設置されているものとする。
【0034】
第2コンピュータ400は、管理装置400として動作する。管理装置400は、模擬オポーネント600を動作させるなどのシステムの管理を行う。なお、制御システム100は、一つのコンピュータによって構成されてもよい。つまり、第1コンピュータ300及び第2コンピュータ400が有する機能は、一つのコンピュータが有していてもよい。
【0035】
第1コンピュータ300は、プロセッサ301と、プロセッサ301に接続された記憶装置302を備える。また、第1コンピュータ300は、外部と通信するための通信ユニット303を備える。
【0036】
記憶装置302は、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置302は、プロセッサ301によって実行されるコンピュータプログラムを備える。プロセッサ301は、記憶装置302に格納されたコンピュータプログラムを読み出して実行する。記憶装置302のコンピュータプログラムは、第1コンピュータ300をビジョン処理装置300として動作させるための命令を示すプログラムコードを有する。
【0037】
第2コンピュータ400は、プロセッサ401と、プロセッサ401に接続された記憶装置402を備える。また、第2コンピュータ400は、外部と通信するための通信ユニット403を備える。
【0038】
記憶装置402は、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置402は、プロセッサ401によって実行されるコンピュータプログラムを備える。プロセッサ401は、記憶装置402に格納されたコンピュータプログラムを読み出して実行する。記憶装置402のコンピュータプログラムは、第2コンピュータ400を管理装置400として動作させるための命令を示すプログラムコードを有する。
【0039】
実施形態の管理装置400は、ビジョン処理装置300から与えられたデータに基づいて模擬オポーネント600を動作させるほか、操作器500から出力された動作データに基づいて模擬オポーネント600を動作させることもできる。
【0040】
操作器500は、人である操作者Bによって操作され、操作に応じた動作データを出力する。操作器500は、例えば、管理装置400と通信可能なリモートコントローラ500である。リモートコントローラ500は、例えば、ジョイスティックを有し、模擬オポーネント600の動作方向等を指定する操作が行えるように構成されている。操作器500は、模擬オポーネント600の可動部分(後述)の動作を指定する操作を行えてもよい。なお、以下では、一例として、模擬オポーネント600は、動作データを、管理装置400を介して受信するが、操作器500から直接受信してもよい。
【0041】
模擬オポーネント600は、一例として、スパーリングロボット600として構成されている。スパーリングロボット600は、プレーヤーAの動作を認識して動き回り、プレーヤーAの攻撃を受けたり、逆に、プレーヤーの攻撃を避けたりする。したがって、プレーヤーAは、模擬オポーネント600をスパーリングパートナーとして効果的な練習をすることができる。
【0042】
図示の模擬オポーネント600は、走行体610と、走行体610に搭載された標的620と、を備える。実施形態の模擬オポーネント60は、人であるプレーヤーAの動きに応じて自動動作することができる。実施形態の模擬オポーネント600は、人である操作者B無しで自律的に動作することができるとともに、操作者Bによる操作に応じて動作することもできる。模擬オポーネント600が操作者B無しで自律的に動作できる場合、プレーヤーAは、操作者Bの助けなく、一人で練習等をすることができる。
【0043】
また、模擬オポーネント600が操作者Bによって操作される場合、第1プレーヤーであるプレーヤーAと、第2プレーヤーBとが、対戦するゲームをすることができる。この場合、プレーヤーAは自ら動作し、プレーヤーBは模擬オポーネント600を操作してプレーヤーAと対戦する。
【0044】
模擬オポーネント600の走行体610は、例えば、水平面の全方向へ移動可能である。全方向へ移動可能であることで、プレーヤーAの動きに応じた機敏な動作が可能となる。なお、走行体610は、旋回も可能であるのが好ましい。走行体610は、一例として、オムニホイールを備える。オムニホイールは、全方向への移動及び旋回が可能である。オムニホイールは、例えば、3輪オムニホイール又は4輪オムニホイールである。走行体610には、標的620が搭載され、標的620を移動させる。走行体610は、標的620が搭載されるため、走行台車と呼ばれてもよい。
【0045】
標的620は、走行体610の上に搭載されている。標的620は、プレーヤーAの攻撃を受け得る対象物である。標的620の形状及び材質は特に限定されないが、競技の種類又はプレーヤーAの競技レベルに応じて適切なものが選択されるのが好ましい。標的620は、例えば、エアバッグ又はスポンジスティックによって構成され得る。図示の標的620は、一例として、円筒状のエアバッグによって構成されている。また、標的620は、可動部分を有していてもよい。可動部分は、模擬オポーネント600に与えられる動作データに基づき、適宜のアクチュエータによって動作し得る。可動部分は、例えば、人の腕を模して形成され得る。
【0046】
模擬オポーネント600は、センサ630、640を備えてもよい。センサ630,640は、カメラ又はその他のセンサである。模擬オポーネント600に設けられたセンサ630,640は、例えば、プレーヤーAから受けた打撃を検出するための接触センサ630、及び/又は、模擬オポーネント600からプレーヤーAまでの距離を測定するための距離センサ640であり得る。距離センサ640は、例えば、超音波センサによって構成され得る。センサ630,640によって検出されたデータは、管理装置400へ送信され得る。管理装置400は、センサ630,640によって検出されたデータを用いて、模擬オポーネント600の動作データを生成し得る。また、模擬オポーネント600は、センサ630,640によって検出されたデータを自ら用いて動作を決定し、動作し得る。
【0047】
なお、図1では、プレーヤーAの位置姿勢を検出するためのセンサとして、模擬オポーネント600とは別の場所に設けられたカメラ200が用いられているが、プレーヤーAの位置姿勢を検出するためのセンサは、模擬オポーネント600に設けられたセンサ630,640であってもよい。また、プレーヤーAの検出のためのセンサは、模擬オポーネント600外のセンサ200及び模擬オポーネント600に設けられたセンサ630,640の両方であってもよい。例えば、プレーヤーAの姿勢を検出するためのセンサがカメラ200であり、プレーヤーAまでの距離を測定するためのセンサがセンサ630,640であってもよい。
【0048】
なお、模擬オポーネント600に設けられたセンサ630,640によってプレーヤーAまでの距離を求めると、模擬オポーネント600とプレーヤーAとの相対位置が容易に把握できる。
【0049】
また、模擬オポーネント600外に設けられたセンサ200の場合、適切な位置に設置されることで、プレーヤーA及び模擬オポーネント600の両方を検出するのが容易となる。
【0050】
プレーヤーA及び操作者Bそれぞれは、ヘッドマウントディスプレイなどの情報提示デバイス701,702を装着し得る。情報提示デバイス701,702は、管理装置400と通信可能であり、提示すべきデータを管理装置400から取得し得る。管理装置400は、模擬オポーネント600又はプレーヤーAの動き又は状況に応じた提示データを、情報提示デバイスに提供し得る。
【0051】
プレーヤーAに装着される情報提示デバイス701は、例えば、模擬オポーネント600に重ねてキャラクター・人物などの画像を、プレーヤーAに提示することで、臨場感を増すことができる。また、情報提示デバイス701は、標的620のうち、プレーヤーAが攻撃すべき部位を強調表示してもよい。また、攻撃した部位に応じて、プレーヤーAが得られる得点・ポイントが異なるゲーム又は試合が行われる場合、情報提示デバイス701は、得点・ポイントごとに、標的620を細分化した表示を提示してもよい。
【0052】
操作者Bに装着される情報提示デバイス702は、例えば、模擬オポーネント600の操作をガイドする表示を提示することができる。これにより、操作者Bによる操作が容易になる。
【0053】
図2は、制御システム100及び模擬オポーネント600のブロック図を示している。図2に示す制御システム100は、位置姿勢推定器310を備える。位置姿勢推定器310は、プレーヤーAの位置及び姿勢を推定する。位置姿勢推定器310は、例えば、ビジョン処理装置300を構成する第1コンピュータ300を位置姿勢推定器310として動作させるためのコンピュータプログラムが、プロセッサ301によって実行されることで構成される。位置姿勢推定器310は、プレーヤーAを撮像したカメラ200から出力された画像に基づいて求められる。カメラ200から出力された画像は、例えば、動画である映像データである。なお、位置姿勢推定器310は、LiDARセンサなどの他のセンサによってプレーヤーAを検知したデータに基づいて、位置及び姿勢を推定してもよい。
【0054】
位置姿勢推定器310(姿勢推定器310)は、カメラ200から取得した画像に対して、適宜の姿勢推定アルゴリズムを適用し、プレーヤーAの姿勢を推定する。姿勢推定器310は、姿勢推定アルゴリズムによって、プレーヤーAの姿勢を示す特徴点座標を求める。特徴点座標は、例えば、画像座標系における座標である。また、姿勢推定器310は、姿勢推定アルゴリズムによって、プレーヤーAの姿勢の推定信頼度も求める。
【0055】
さらに、位置姿勢推定器310(位置推定器310)は、カメラ200から取得した深度画像またはステレオカメラであるカメラ200から取得したステレオカメラ画像から、前述の特徴点の深度(特徴点までの距離)を推定する。すなわち、ここでは、プレーヤーAまでの距離が推定される。
【0056】
位置姿勢推定器310が求めた特徴点座標、推定信頼度、及び特徴点の深度は、プレーヤーAの位置姿勢を示す第1データ又は第1学習データとして、後述の動作生成器410又は動作学習器410に与えられる。第1データ及び第1学習データは、現時点から所定期間の過去までの時系列の動画データ(画像データ)から生成され得る。この場合、第1データ及び第1学習データは、所定期間における位置姿勢の変化を示す時系列データとして得られる。この場合、第1データ及び第1学習データは、プレーヤーAの現時点から直近の所定期間の動作を示すものとなる。
【0057】
また、図2に示す制御システム100は、模擬オポーネント600の位置検出器320を備える。位置検出器320は、模擬オポーネント600の位置を検出する。位置検出器320は、例えば、ビジョン処理装置300を構成する第1コンピュータ300を位置検出器320として動作させるためのコンピュータプログラムが、プロセッサ301によって実行されることで構成される。位置検出器320は、模擬オポーネント600を撮像したカメラ200から出力された画像に基づいて求められる。なお、位置検出器320は、LiDARセンサなどの他のセンサによって模擬オポーネント600を検知したデータに基づいて、位置を検出してもよい。
【0058】
位置検出器320は、カメラ200から取得した画像に対して、適宜の物体検出アルゴリズムを適用し、画像中の模擬オポーネント600の位置を示す座標を求める。また、位置検出器320は、模擬オポーネント600の位置を示す座標までの深度を求める。
【0059】
位置検出器320は、位置姿勢推定器310が位置姿勢推定に用いる画像と同じ画像を利用し得る。同じ画像中のプレーヤーA及び模擬オポーネント600それぞれは、画像認識によって区別して認識され得る。また、プレーヤーA及び模擬オポーネント600は、プレーヤーA及び模擬オポーネント600それぞれを区別して認識するためのマーカを備えてもよい。
【0060】
位置検出器320が求めた座標及び深度は、模擬オポーネント600の位置を示す第2データ又は第2学習データとして、後述の動作生成器410又は動作学習器410に与えられる。第2データ及び第2学習データは、現時点から所定期間の過去までの時系列の動画データ(画像データ)から生成され得る。この場合、第2データ及び第2学習データは、所定期間における模擬オポーネント60の位置の変化を示す時系列データとして得られる。この場合、第2データ及び第2学習データは、模擬オポーネント60の現時点から直近の所定期間の動作を示すものとなる。
【0061】
プレーヤーA及び模擬オポーネント600それぞれの位置が求められることで、システム10は、プレーヤーAと模擬オポーネント600との相対位置関係を把握し得る。なお、プレーヤーAの位置が、模擬オポーネント600に設けられたセンサによって求められる場合、求められたプレーヤーAの位置は、プレーヤーAと模擬オポーネント600との相対位置関係を示すため、模擬オポーネント600の位置は求められなくてもよい。
【0062】
動作生成器410は、模擬オポーネント600の動作データを生成する。動作生成器410は、例えば、管理装置400を構成する第2コンピュータ400を動作生成器410として動作させるためのコンピュータプログラムが、プロセッサ401によって実行されることで構成される。
【0063】
動作生成器410は、動作データを生成するための動作生成モデル420を備える。動作生成モデル420は、機械学習モデルであり得る。実施形態に係る動作生成器410は、プレーヤーAの位置姿勢を示す第1データ及び模擬オポーネント600の位置を示す第2データが入力されると、動作データを出力する関数として定義され得る。動作データは、単に、プレーヤーAとの距離を一定に保って移動するのではなく、プレーヤーAとの相対的な距離を変動させるよう模擬オポーネント600に動作指示するデータとなる。なお、第2データは省略されてもよい。すなわち、動作生成モデル420は、プレーヤーAの位置姿勢を示す第1データが入力されると、動作データを出力するものであってもよい。なお、動作生成モデル420から出力される動作データの形式は、操作器500から出力される動作データと同じであるのが好ましい。動作生成モデル420から出力される動作データは、模擬オポーネント600の走行体610を移動させるほか、模擬オポーネント600の可動部分を動作させるものであってもよい。
【0064】
動作学習器410は、動作生成モデル420の機械学習のための処理を実行する。すなわち、動作学習器410によって、動作生成モデル420が生成される。動作学習器410は、例えば、管理装置400を構成する第2コンピュータ400を動作学習器410として動作させるためのコンピュータプログラムが、プロセッサ401によって実行されることで構成される。
【0065】
動作学習器410は、操作器500から出力された動作データと、その動作データに従って模擬オポーネント600が動作しているときにおけるプレーヤーAの位置姿勢と、を学習データとして機械学習を実行し得る。
【0066】
動作学習器410は、操作器500から出力された動作データ(操作用動作データ)に基づいて模擬オポーネント600が動作しているときにおけるプレーヤーAの位置姿勢を示す第1学習データと、操作器500から出力された動作データ(学習用動作データ)と、を学習データとして、機械学習を実行する。すなわち、動作学習器410は、プレーヤーAの動作に応じて操作者Bが操作した内容を、手本となる学習データとして機械学習を実行する。操作者Bは、プレーヤーAの動きに応じて模擬オポーネント600を動作させるため、操作者Bの操作を学習することで、プレーヤーAの動作に応じた適切な反射動作を生成する動作生成モデル420が得られる。
【0067】
動作学習器410が実行する機械学習は、模倣学習であり得る。動作学習器410は、操作者Bの操作内容を模倣する模倣学習を実行することができる。
【0068】
例えば、操作者Bは、プレーヤーAの動きに応じて、プレーヤーAの攻撃を避ける、プレーヤーの攻撃を受ける、プレーヤーを攻撃する、又はプレーヤーの動きを誘うフェイント動作などの反射動作を模擬オポーネント600が行うように、操作器500を操作する。動作学習器410は、このときの操作内容を手本として機械学習することで、プレーヤーAの動きに応じた反射動作のための動作データを出力する動作生成モデル420を生成することができる。
【0069】
通常の対戦では、例えばプレーヤーAが右足を上げた場合、右足での蹴りが予想される。右足の蹴りにおいては、右足が上がった後、前側に軌跡を描くことになる。したがって、プレーヤーAの対戦相手は、その右足の蹴りを避ける場合には、右足の蹴りの軌跡から外れる動作をする。例えば、対戦相手は、左側か後方に移動して、右足の蹴りをかわす動作をすることが想定される。
【0070】
このような動作を実現するため、制御システム100は、望ましくは、プレーヤーAの位置および姿勢とプレーヤーAの位置姿勢から予想される動作の意図と、を認識する。プレーヤーAの動作の意図を早期に認識することで、制御システム100は、その動作によって生じるプレーヤーAの位置又は姿勢の変化を予測することができる。制御システム100は、予測した位置又は姿勢の変化に応じた適切な行動をするよう、模擬オポーネント600に動作指示ができることができる。
【0071】
例えば、プレーヤーAの現在の姿勢が、右足を上げた姿勢である場合、制御システム100は、プレーヤーAの現在の右足を上げた姿勢から、予想される動作として「右足での蹴り」を認識する。この場合、制御システム100は、認識された動作「右足での蹴り」から、プレーヤーAの位置又は姿勢の変化を予測する。予測される位置又は姿勢の変化は、例えば、プレーヤーAの右足が、蹴りのため、前側に軌跡を描くように移動することである。制御システム100は、模擬オポーネント600が、予測した右足の軌跡に応じた行動として、左側又は後方に移動して、右足の蹴りをかわす動作の指示をすることができる。
【0072】
動作学習器410は、プレーヤーAの位置および姿勢から予想される動作を認識するようモデル420を生成することができる。また、動作学習器410は、認識した動作に応じたプレーヤーAの位置又は姿勢の変化に応じた動作のための動作データを出力するモデル420を生成することができる。
【0073】
ただし、動作学習器410での機械学習の学習範囲に、予想される動作の認識まで含まれると、演算量が増加し、動作生成器410によって模擬オポーネント60の動作データを得るまでに時間がかかるおそれがある。時間がかかると、模擬オポーネント60のタイムリーな動作が損なわれる。そこで、図示の動作生成器410においては、一例として、予想される動作の認識は省略され、画像データから得られる第1データから、直接、動作データを得るよう構成されている。このように、第1データから、直接、動作データを得るエンドツーエンド学習を採用することにより、プレーヤーAの動きに合わせたタイムリーな模擬オポーネント60の動作が実現される。
【0074】
なお、動作生成モデル420の機械学習の際には、学習データとして、操作器500から出力された動作データ(操作用動作データ)に基づいて模擬オポーネント600が動作しているときにおける模擬オポーネント600の位置を示す第2学習データが更に用いられてもよい。
【0075】
模擬オポーネント600は、制御装置611及び駆動装置612を備え得る。制御装置611及び駆動装置612は、走行体610に設けられているのが好ましい。制御装置611は、模擬オポーネント600が備える通信ユニット(図示省略)を介して、動作データを受信する。動作データは、例えば、無線通信によって送受信される。
【0076】
制御装置611は、受信した動作データに基づいて、駆動装置612を駆動する駆動信号を生成し、駆動装置612に与える。駆動装置612は、例えば、走行体610に設けられており、模擬オポーネント600の走行のためのモータ等を備える。駆動装置612が備えるモータは、例えば、オムニホイールを回転駆動するモータであり得る。駆動装置612は、模擬オポーネント600の可動部分を動作させてもよい。
【0077】
図3は、動作生成モデル420の機械学習時の処理の手順の一例を示している。操作者Bは、プレーヤーAの動きに応じて操作器500を適宜操作することができる(ステップS31)。操作器500から出力された動作データは、学習用操作データとして制御システム100に与えられるとともに、操作用動作データとして模擬オポーネント600に与えられる。模擬オポーネント600は、与えられた操作用動作データに基づいて動作する(ステップS32)。プレーヤーAは、模擬オポーネント600の動作に反応して、さらに動作することができる。
【0078】
制御システム100は、模擬オポーネント600とプレーヤーAとの対戦中における学習用操作データの変化を示す時系列データを記憶装置402に保存する。
【0079】
制御システム100は、模擬オポーネント600とプレーヤーAとの対戦中において、プレーヤーAの位置姿勢を逐次推定し(ステップS33)、対戦中におけるプレーヤーAの位置姿勢の変化を示す時系列データを、記憶装置402に保存する。
【0080】
また、制御システム100は、模擬オポーネント600とプレーヤーAとの対戦中において、模擬オポーネント600の位置を逐次検出し(ステップS34)、対戦中における模擬オポーネント600の位置の変化を示す時系列データを記憶装置402に保存する。
【0081】
制御システム100は、学習用操作データ、プレーヤーAの位置姿勢、及び模擬オポーネント600の位置を用いて模倣学習を実行し、動作生成モデル420を生成する(ステップS35)。
【0082】
なお、ステッS35では機械学習として模倣学習が採用されている。模倣学習は、正解データとなるエキスパートの持つ入出力関数をあらかじめ教師あり学習で学習させた結果を参照し、入力されたデータに対して追加で強化学習などの機械学習をさせることである。また、機械学習は、模倣学習の1種類だけ実行される必要はなく、複数種類の機械学習が実行されてもよい。例えば、模倣学習が実行された後に、適宜の評価指標を用いた強化学習が実行されてもよい。
【0083】
機械学習が完了すると、模擬オポーネント600は、操作者Bによる操作無しで自律的に動作可能になる。図4は、模擬オポーネント600の自律動作のための処理の手順の一例を示している。
【0084】
制御システム100は、カメラ200などのセンサを用いてプレーヤーAの位置姿勢を推定する(ステップS41)。また、制御システム100は、カメラ200などのセンサを用いて模擬オポーネント600の位置を検出する(ステップS42)。制御システム100は、プレーヤーAの位置姿勢及び模擬オポーネント600の位置を示すデータを、機械学習によって得られた動作生成モデル420に入力する。動作生成モデル420は、入力されたデータに応じた動作データを出力する(ステップS43)。
【0085】
制御システム100は、動作データを模擬オポーネント600に与える。模擬オポーネント600は、与えられた動作に応じて動作する(ステップS44)。したがって、模擬オポーネント600は、プレーヤーAの動きに応じた反応動作をすることができる。したがって、実施形態に係る模擬オポーネント600は、単に、プレーヤーAとの距離を一定に保って移動するのではなく、動作データにより、プレーヤーAと模擬オポーネント600との相対的な距離を変動させるよう動作することができる。このため、プレーヤーA又は模擬オポーネント600は、相手との間合いを変えつつ、攻撃又は防御を行うことができる。
【0086】
なお、模擬オポーネント600は、制御システム100から与えられた動作データに加えて、模擬オポーネント600自体が備えるセンサ630,640によって得られたセンサデータに基づいて動作してもよい。例えば、プレーヤーAの攻撃を回避する場合、制御システム100から与えられた動作データよりも、模擬オポーネント600自体が備えるセンサ630,640によって得られたデータを優先的に用いて動作したほうが良いことがある。センサ630,640のデータを利用すると、模擬オポーネント600は、プレーヤーAの動きに対して迅速に応答でき、例えば、プレーヤーAの素早い攻撃の回避動作をするなどの迅速な動きを行うのが容易になる。
【0087】
図5は、実施形態に係る模擬オポーネント600の一例を示している。図5に示す模擬オポーネント600は、自己復元機構を備える。自己復元機構は、起き上がりこぼしのように、転倒状態から起立状態への自己復元力を生じさせる機構である。自己復元機構は、模擬オポーネント600の重心を低くすることによって得られる。図5に示すC1は、標的620を備える模擬オポーネント600の重心であり、図5に示すC2は、標的620を有しない模擬オポーネント600(すなわち、走行体610単体)の重心である。
【0088】
転倒状態における重心C1の位置が、起立状態における重心C1の位置よりも高くなるように模擬オポーネント600が構成されていることで、転倒時に自己復元力が生じる。すなわち、転倒時には、高い位置にある重心C1が低い位置へ移動しようとする自己復元力が生じる。この自己復元力によって、転倒した模擬オポーネント600は起立状態に復帰できる。したがって、模擬オポーネント600は、プレーヤーAから打撃などの攻撃を受けて転倒しても、元に戻ることができる。
【0089】
転倒時の重心C1を高い位置にするとともに、自己復元動作を円滑にするため、走行体610にはカバー615が設けられている。カバー615は、一例として、走行体610に設けられた3輪オムニホイールが備える3つの車輪613それぞれの外側を覆うように設けられている。カバー615によって、走行体610の径が大きくなる。転倒時には、カバー615が走行面に接し、転倒時における重心C1の位置が高くなりやすい。また、カバー615は、転倒状態から起立状態に復元する際に、走行面に接するように湾曲した面を有しており、起立状態への復元動作を円滑にする。さらに、カバー615は、車輪613を保護することもできる。
【0090】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0091】
10 :模擬オポーネントシステム
100 :制御システム
200 :カメラ
300 :ビジョン処理装置(第1コンピュータ)
301 :プロセッサ
302 :記憶装置
303 :通信ユニット
310 :位置姿勢推定器(姿勢推定器・位置推定器)
320 :位置検出器
400 :管理装置(第2コンピュータ)
401 :プロセッサ
402 :記憶装置
403 :通信ユニット
410 :動作生成器
410 :動作学習器
420 :動作生成モデル
500 :操作器
600 :模擬オポーネント
610 :走行体
611 :制御装置
612 :駆動装置
613 :車輪
615 :カバー
620 :標的
630 :センサ
640 :センサ
701 :情報提示デバイス
702 :情報提示デバイス
A :プレーヤー
B :操作者
C1 :重心
C2 :重心
図1
図2
図3
図4
図5