(57)【要約】  自走デバイスの動きを制御する多種のプログラムを準備しなくても、複数のシートのそれぞれで様々な動作を行わせること。移動デバイス制御システムは、自走するデバイスが配置される領域が分割された複数の部分領域のうち、前記デバイスが走行している部分領域を特定する特定手段と、前記部分領域のそれぞれと、前記デバイスの動作を規定する動作情報とを関連付けて記憶する記憶手段から、前記特定された部分領域に関連付けられた動作情報を取得し、前記取得された動作情報に基づいて前記デバイスの動作を制御する制御手段と、を含む。
2020036145.tif 000002
【特許請求の範囲】
【請求項１】
自走するデバイスが配置されるシート上の領域が分割されてなる複数の部分領域のうち、前記デバイスが走行している部分領域を特定する特定手段と、
前記部分領域のそれぞれと、前記デバイスの動作を規定する動作情報とを関連付けて記憶する記憶手段から、前記特定された部分領域に関連付けられた動作情報を取得し、前記取得された動作情報に基づいて前記デバイスの動作を制御する制御手段と、
を含む移動デバイス制御システム。
【請求項２】
請求項１に記載の移動デバイス制御システムにおいて、
前記複数の部分領域のそれぞれに関連付けられた前記動作情報が符号化されたパターンが印刷されたシートから前記パターンを読み取ることにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得し、前記読み出された動作情報を前記部分領域と関連付けて記憶する読出手段をさらに含む、
移動デバイス制御システム。
【請求項３】
請求項２に記載の移動デバイス制御システムにおいて、
前記読出手段は、前記複数の部分領域のそれぞれに関連付けられた前記動作情報が符号化されたパターンが印刷されたシートから、前記パターンを所定の順序で読み取ることにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得する、
移動デバイス制御システム。
【請求項４】
請求項２または３に記載の移動デバイス制御システムにおいて、
前記読出手段は、前記複数の部分領域にそれぞれ関連付けられた前記動作情報が符号化されたパターンが所定の方向に並んで印刷されたシートの上を、カメラを有するデバイスが前記パターンを認識しながら前記所定の方向へ走行することにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得する、
移動デバイス制御システム。
【請求項５】
請求項４に記載の移動デバイス制御システムにおいて、
前記動作情報は、あらかじめ定められた複数の動作の種別のいずれかであり、
前記複数の動作の種別のそれぞれには、他の動作の種別と重複しないように割り当てられた座標領域に属する複数の座標が符号化されたパターンが対応付けられ、
前記読出手段は、前記複数の部分領域にそれぞれ対応付けられた複数のパターンが所定の方向に並んで印刷されたシートの上を、カメラを有するデバイスが前記複数のパターンを認識しながら前記所定の方向へ走行することにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得する、
移動デバイス制御システム。
【請求項６】
請求項１から４のいずれかに記載の移動デバイス制御システムにおいて、
前記動作情報は前記部分領域の種別を示す情報であり、
前記制御手段は、前記デバイスが次に向かう部分領域の種別に基づいて、前記デバイスの動作を制御する、
移動デバイス制御システム。
【請求項７】
自走するデバイスが配置される領域が分割された複数の部分領域のそれぞれに関連付けられた動作情報であって、前記デバイスの動作を規定する動作情報が符号化されたパターンが所定の方向に並んで印刷された、
シート。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は移動デバイス制御システムおよびシートに関する。
【背景技術】
【０００２】
直観的にプログラミングすることができる教材が幅広く販売されている。ユーザにプログラミングをより直観的に理解させるため、ユーザが作成したプログラムに応じてロボットなどを動作させ、プログラムが適切であるか否かを視覚的に確認するプログラム教材も存在する。【０００３】
特許文献１には、ユーザがプログラムのコマンドシーケンスを形成し、自走デバイスがそのプログラムを読み取り、読み取られたプログラムに基づいて自走デバイスの移動を制御するシステムが開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【特許文献１】国際公開第２０１８／０２５４６７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本件発明者らは、プログラムに応じてシート上を走行する自走デバイスを用意し、そのプログラムをユーザに作成させる教材を検討している。シートには、情報が書き込まれており、自走デバイスは現在位置の情報を読み取り、その位置に応じた動作をすることができる。シートには課題として迷路などが印刷され、ユーザの学習の進みに応じた複数のシートが準備される。【０００６】
その際に、そのシートにユーザの興味を引くようなバリエーションを持たせる必要がある。しかし、バリエーションを持たせるためにシートごとに、位置に応じた動きをさせるプログラムを準備するのは煩雑である。【０００７】
本発明は上記課題を鑑みてなされたものであって、その目的は、自走デバイスの動きを制御する多種のプログラムを準備しなくても、複数のシートのそれぞれで様々な動作を行わせる技術を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明にかかる移動デバイス制御システムは、自走するデバイスが配置されるシート上の領域が分割されてなる複数の部分領域のうち、前記デバイスが走行している部分領域を特定する特定手段と、前記部分領域のそれぞれと、前記デバイスの動作を規定する動作情報とを関連付けて記憶する記憶手段から、前記特定された部分領域に関連付けられた動作情報を取得し、前記取得された動作情報に基づいて前記デバイスの動作を制御する制御手段と、を含む。【０００９】
また、本発明にかかるシートは、自走するデバイスが配置される領域が分割された複数の部分領域のそれぞれに関連付けられた動作情報であって、前記デバイスの動作を規定する動作情報が符号化されたパターンが所定の方向に並んで印刷される。【００１０】
本発明によれば、自走デバイスの動きを制御する多種のプログラムを準備しなくても、複数のシートのそれぞれで様々な動作を行わせることができる。【００１１】
本発明の一形態では、移動デバイス制御システムは、前記複数の部分領域のそれぞれに関連付けられた前記動作情報が符号化されたパターンが印刷されたシートから前記パターンを読み取ることにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得し、前記読み出された動作情報を前記部分領域と関連付けて記憶する読出手段をさらに含んでもよい。【００１２】
本発明の一形態では、前記読出手段は、前記複数の部分領域のそれぞれに関連付けられた前記動作情報が符号化されたパターンが印刷されたシートから、前記パターンを所定の順序で読み取ることにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得してもよい。【００１３】
本発明の一形態では、前記読出手段は、前記複数の部分領域にそれぞれ関連付けられた前記動作情報が符号化されたパターンが所定の方向に並んで印刷されたシートの上を、カメラを有するデバイスが前記パターンを認識しながら前記所定の方向へ走行することにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得してもよい。【００１４】
本発明の一形態では、前記動作情報は、あらかじめ定められた複数の動作の種別のいずれかであり、前記複数の動作の種別のそれぞれには、他の動作の種別と重複しないように割り当てられた座標領域に属する複数の座標が符号化されたパターンが対応付けられ、前記読出手段は、前記複数の部分領域にそれぞれ対応付けられた複数のパターンが所定の方向に並んで印刷されたシートの上を、カメラを有するデバイスが前記複数のパターンを認識しながら前記所定の方向へ走行することにより、前記部分領域のそれぞれに関連付けられた前記動作情報を取得してもよい。【００１５】
本発明の一形態では、前記動作情報は前記部分領域の種別を示す情報であり、前記制御手段は、前記デバイスが次に向かう部分領域の種別に基づいて、前記デバイスの動作を制御してもよい。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態にかかる制御システムの一例を示す図である。
【図２】制御システムのハードウェア構成を示す図である。
【図３】台車の一例を示す図である。
【図４】台車が配置されるシートの一例を示す図である。
【図５】座標空間内の領域の割り当ての概要を示す図である。
【図６】共通割当領域を概略的に示す図である。
【図７】スタート割当領域の内訳を概略的に示す図である。
【図８】制御システムが実現する機能を示すブロック図である。
【図９】台車を制御する処理の一例を示すフローチャートである。
【図１０】台車を制御する処理の一例を示すフローチャートである。
【図１１】マップ情報の一例を示す図である。
【図１２】台車が配置されるシートの他の一例を示す図である。
【図１３】追加マップの情報が符号化されたパターンを概略的に説明する図である。
【図１４】追加パターンとマップ情報との対応の一例を示す図である。
【図１５】追加マス領域におけるマス属性と座標との関係の一例を示す図である。
【図１６】追加付加領域における付加情報と座標との関係の一例を示す図である。
【図１７】追加命令領域における命令と座標との関係の一例を示す図である。
【図１８】追加マップを読み取る処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。本発明の実施形態では、制御システムとして、ユーザが簡易的な言語を用いて実習用のプログラム（以下では「実習プログラム」と記載する）を作成し、その実習プログラムを実行することにより迷路上で自走式のデバイスを走行させるプログラミング教材について説明する。
【００１８】
図１は、本発明の実施形態にかかる制御システムの一例を示す図である。図２は、本発明の実施形態にかかる制御システムのハードウェア構成の一例を示す図である。本発明にかかる制御システムは、デバイス制御装置１０と、台車２０ａ，２０ｂと、コントローラ１７と、カートリッジ１８とを含む。台車２０ａ，２０ｂはカメラ２４を有する移動デバイスであり、どちらも同じ機能を有する。以下では特に区別する必要がない限り、これらの台車２０ａ，２０ｂを台車２０と記載する。デバイス制御装置１０は、無線を介して台車２０を制御する。コントローラ１７はユーザによる操作を取得する入力装置であり、ケーブルによりデバイス制御装置１０に接続されている。図３は、台車２０の一例を示す図である。図３は、台車２０を下からみた図である。台車２０は、電源スイッチ２５０、スイッチ２２２、２つの車輪２５４をさらに含む。
【００１９】
デバイス制御装置１０は、プロセッサ１１、記憶部１２、通信部１３、入出力部１４を含む。台車２０は、プロセッサ２１、記憶部２２、通信部２３、カメラ２４、２つのモータ２５を含む。デバイス制御装置１０は、制御のための専用の装置であってもよいし、汎用的なコンピュータであってもよい。
【００２０】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作し、通信部１３、入出力部１４などを制御する。プロセッサ２１は、記憶部２２に格納されているプログラムに従って動作し、通信部２３、カメラ２４、モータ２５などを制御する。上記プログラムは、カートリッジ１８内のフラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるが、インターネット等のネットワークを介して提供されてもよい。
【００２１】
記憶部１２は、デバイス制御装置１０に内蔵されるＤＲＡＭおよびフラッシュメモリと、カートリッジ１８内のフラッシュメモリ等によって構成されている。記憶部２２は、ＤＲＡＭおよびフラッシュメモリ等によって構成されている。記憶部１２，２２は、上記プログラムを格納する。また、記憶部１２，２２は、プロセッサ１１，２１や通信部１３，２３等から入力される情報や演算結果を格納する。
【００２２】
通信部１３，２３は他の機器と通信するための集積回路やアンテナなどにより構成されている。通信部１３，２３は、例えばBluetooth(登録商標)プロトコルに従って互いに通信する機能を有する。通信部１３，２３は、プロセッサ１１，２１の制御に基づいて、他の装置から受信した情報をプロセッサ１１，２１や記憶部１２，２２に入力し、他の装置に情報を送信する。なお、通信部１３はＬＡＮなどのネットワークを介して他の装置と通信する機能を有してもよい。
【００２３】
入出力部１４は、コントローラ１７などの入力デバイスからの情報を取得する回路と、音声出力デバイスや画像表示デバイスなどの出力デバイスを制御する回路とを含む。入出力部１４は、入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ１１や記憶部１２に入力する。また入出力部１４は、プロセッサ１１などの制御に基づいて、音声をスピーカに出力させ、画像を表示デバイスに出力させる。
【００２４】
モータ２５は、プロセッサ２１により回転方向、回転量および回転速度が制御される、いわゆるサーボモータである。２つのモータ２５のそれぞれには、１つの車輪２５４が割り当てられており、モータ２５は、割り当てられた車輪２５４を駆動する。
【００２５】
カメラ２４は、台車２０の下方を撮影するように配置され、台車２０が置かれているシート３１など（図４参照）に印刷されたパターンを撮影する。本実施形態では、シート３１などには赤外線の周波数領域で認識されるパターンが印刷されており、カメラ２４は、その赤外線の画像を撮影する。
【００２６】
図４は、台車２０が配置されるシート３１の一例を示す図である。図４は、複数のシート３１が冊子状にまとめられている例を示している。それぞれのシート３１には、ユーザが視認できる画像が印刷されており、さらに、カメラ２４により撮影可能なパターンが印刷されている。図４の例では、ユーザが視認できる画像として、５×５のマスからなる迷路が印刷されている。この迷路はプログラミング教材のためのものである。ユーザは実習プログラムを作成し、台車２０は、実習プログラムに従って移動する。マスの属性としては、スタートマス３３ａ、ゴールマス３３ｂ、通行不能マス３３ｉ、通常マス３３ｎ、アクションマス３３ｑなどがある。
【００２７】
ユーザは、実習プログラムを制御システムに読み込ませたのちに、台車２０のうち１台をスタートマス３３ａに配置し、制御システムが実習プログラムに応じて台車２０を走行させる。例えば図４の例では、カートリッジ１８により提供されるプログラムにより、制御システムは、台車２０が通行不能マス３３ｉ上を走行しないように台車２０を制御する。また台車２０が通常マス３３ｎやアクションマス３３ｑを通ってゴールマス３３ｂに到着すると、デバイス制御装置１０はユーザがプログラムの作成に成功したことを意味する音声等を出力する。
【００２８】
シート３１等に印刷されるパターンについてより詳細に説明する。シート３１上には、所定の大きさ（例えば０．２ｍｍ角）の単位パターンがマトリクス状に並んでいる。単位パターンのそれぞれは、そのパターンが配置される位置の座標が符号化された画像である。パターンとして符号化されるデータの大きさはあらかじめ決まっており、符号化される座標の最大・最小値（座標空間の大きさ）は、そのデータの大きさと単位パターンの配置間隔により定まる。
【００２９】
本実施形態にかかる制御システムでは、台車２０のカメラ２４がシート３１等に印刷された単位パターンを撮影し、台車２０またはデバイス制御装置１０がその単位パターンを復号して座標を取得する。これにより、台車２０のシート３１等の上における位置が認識される。また、台車２０またはデバイス制御装置１０は、カメラ２４により撮影された画像内にある複数の単位パターンのそれぞれから座標を取得し、その撮影された画像における複数の単位パターンの位置と、取得された座標とに基づいて、台車２０の向きも算出する。
【００３０】
本実施形態では、シート３１等に印刷されるパターンを利用することにより、ステレオカメラなどの他のデバイスを用いることなくシート３１等の上における台車２０の位置を高精度に認識することができる。
【００３１】
図５は、座標空間内の領域の割り当ての概要を示す図である。座標空間はｘｙ座標の範囲により複数の割当領域に分割されており、分割された割当領域の一部は本実施形態におけるプログラミング教材のアプリケーション（本アプリケーション）に割り当てられ、また分割された領域の他の一部（他アプリケーション領域）は他のアプリケーションに割り当てられている。本アプリケーションに割り当てられた割当領域としては、共通割当領域、スタート割当領域、命令カード領域、追加マス領域、追加命令領域、追加付加領域がある。これらの割当領域のそれぞれの詳細については後述する。
【００３２】
以下では、冊子に含まれる複数のシート３１のそれぞれのうち、スタートマス３３ａの領域（スタート領域）を除く領域を共通領域とよぶ。共通領域は、スタート領域の周囲に配置される領域である。共通領域には、共通割当領域の一部の領域が割り当てられる。また、シート３１には、複数のパターンが並んで印刷されており、そのパターンのそれぞれは、その割り当てられた領域のうちそのパターンの位置に対応する座標が符号化されたものである。
【００３３】
図６は、共通割当領域を概略的に示す図である。共通割当領域は、スタートマス３３ａを中心とする９×９のマスに相当する領域である。図６に示されるマスの大きさはシート３１に印刷される迷路のマスの大きさに対応する。図６の一点鎖線は図４に示されるシート３１に印刷される座標空間内の領域を示している。各シート３１の共通領域には、共通割当領域の９×９のマスのうち一部の領域が割り当てられる。より厳密には、共通領域には、共通割当領域に含まれる５×５のマスからスタートマス３３ａを除いた領域が割り当てられる。また図６の例では、共通割当領域におけるスタートマス３３ａの位置は固定されており、共通割当領域のうちシート３１に割り当てられる領域は、シート３１におけるスタートマス３３ａの位置に応じて変化する。
【００３４】
これにより、複数のシート３１のそれぞれの共通領域には、スタートマス３３ａとの相対位置を示す座標のパターンが印刷される。また、複数のシート３１のそれぞれの共通領域には、他の少なくとも１つのシートの共通領域と重複する座標領域が割り当てられる。
【００３５】
一方、スタートマス３３ａに相当するスタート領域には、シートを識別する情報が符号化されたパターンが印刷されている。より具体的には、スタート領域には、スタート割当領域内の座標領域が割り当てられ、その座標領域内の座標が符号化されたパターンが印刷される。スタート領域には、他のシート３１のいずれとも重複しない座標領域が割り当てられる。
【００３６】
図７は、スタート割当領域の内訳を概略的に示す図である。スタート割当領域は、１１×１１のマスを有しており、これらのマスのそれぞれの大きさはシート３１に印刷されるスタートマス３３ａの大きさに対応する。シート３１のスタート領域には、スタート割当領域のうちいずれか１つのマスが割り当てられ、そのマスの座標が符号化されたパターンが印刷されている。図７の各マスに記載されている「１−１」などの符号は、そのマスに関連付けられたＩＤを示しており、そのＩＤはシート３１を識別するものである。
【００３７】
制御システムは、カメラ２４で撮影されたスタート領域のパターンが示す座標がスタート割当領域のどのマスに属するか判定し、そのマスに関連付けられたシート３１のＩＤを取得する。スタートマス３３ａには、始めにユーザにより自走する台車２０が配置されるので、自走する台車２０が移動を開始する前にどのシート３１上にいるかを判定することができ、あるシート３１と他のシート３１とで、重複する座標が印刷されていても、制御システムはシート３１に関連付けられたマップ等の情報に応じて台車２０の動きを制御することができる。
【００３８】
次に、これまでに説明したシート３１等を用いる制御システムの動作について、より詳細に説明する。図８は、制御システムが実現する機能を示すブロック図である。制御システムは、機能的に、初期位置取得部５０、現在位置取得部５１、スタート制御部５２、実習プログラム取得部５３、実習プログラム実行部５４、追加情報取得部５６、マップ格納部７２を含む。初期位置取得部５０、現在位置取得部５１、スタート制御部５２、実習プログラム取得部５３、実習プログラム実行部５４、追加情報取得部５６は、主に、デバイス制御装置１０に含まれるプロセッサ１１が記憶部１２に格納されるプログラムを実行し、通信部１３を介して台車２０を制御することにより実現される。また、初期位置取得部５０、現在位置取得部５１などの機能の一部または全部は、台車２０に含まれるプロセッサ２１が記憶部２２に格納されるプログラムを実行し、通信部２３を介してデバイス制御装置１０とデータをやり取りし、カメラ２４やモータ２５を制御することにより実現される。
【００３９】
マップ格納部７２は、デバイス制御装置１０に含まれる記憶部１２により実現され、複数のシート３１のそれぞれについてのマップやマップに関連する情報が格納されている一種のデータベースである。
【００４０】
初期位置取得部５０は、カメラ２４により撮影された画像から、座標が符号化されたパターンから情報を復号する。具体的には復号される情報は、シート３１のうち台車２０が配置された箇所の座標であり、シート３１を識別することのできる情報である。
【００４１】
スタート制御部５２は、初期位置取得部５０により取得された台車２０の座標に基づいて、実習プログラム実行部５４の動作に関する設定をする。スタート制御部５２は、機能的に、シート識別部６１およびマップ特定部６２を含む。シート識別部６１は、初期位置取得部５０により取得された情報（具体的には台車２０の座標）に基づいて、台車２０が配置されているシート３１を識別する情報を取得する。マップ特定部６２は、シート３１の識別する情報に基づいて、シート３１に関連付けられたマップの情報を取得する。マップの情報は、共通領域およびスタート領域にある各マスの属性の情報や、スタート位置から実習プログラムに従って移動する台車２０を邪魔する他の台車２０の動作プログラム、その他の付加的な情報を含む。
【００４２】
現在位置取得部５１は、カメラ２４により撮影された画像から、座標が符号化されたパターンを認識し、そのパターンが示す座標から、台車２０の位置する座標と台車２０の向きとを取得する。初期位置取得部５０と現在位置取得部５１は、実質的に同じものであってもよく、同じプログラムが実行されることにより実現されてもよい。
【００４３】
実習プログラム取得部５３は、スタート位置に配置される台車２０を走行させるための実習プログラムであって、ユーザが作成した実習プログラムを取得する。
【００４４】
実習プログラム実行部５４は、取得された実習プログラムを実行し、取得されたマップと現在位置取得部５１により取得された台車２０の位置とに基づいてシート３１上に配置された台車２０の動作を制御する。実習プログラム実行部５４は、機能的に、走行マス特定部６５、マス属性取得部６６、動作制御部６７を含む。
【００４５】
走行マス特定部６５は、現在位置取得部５１が取得した座標に基づいて、台車２０が配置されるシート３１上の領域が分割された複数のマスのうち、台車２０が現在走行しているマスを特定する。
【００４６】
マス属性取得部６６は、マスのそれぞれと、台車２０の動作を特定する動作情報とを関連付けて記憶するマップ格納部７２から、走行マス特定部６５により特定されたマスに関連付けられた動作情報を取得する。
【００４７】
動作制御部６７は、取得された動作情報および現在の座標に基づいて、台車２０の動作を制御する。
【００４８】
追加情報取得部５６は、印刷されたパターンを自走するデバイスで読み取ることにより、マップの情報を取得し、取得されたマップの情報をマップ格納部７２に格納する。
【００４９】
以下では、スタート制御部５２および実習プログラム実行部５４の処理について説明する。図９および１０は、台車２０を制御する処理の一例を示すフローチャートである。図１０には、図９のステップＳ２０８の処理がより詳細に示されている。なお、図９，１０に示される処理を行う前に、実習プログラム取得部５３はユーザが作成した実習プログラムを取得している。
【００５０】
はじめに、スタート制御部５２に含まれる初期位置取得部５０は、カメラ２４により撮影されたパターンを復号し、シート３１において台車２０が置かれている現在の座標および向きを取得する（ステップＳ２０１）。次に、スタート制御部５２に含まれるマップ特定部６２は、取得された座標がスタート領域内にあることを示すか否か判定する（ステップＳ２０２）。より具体的には、マップ特定部６２は、取得された座標がスタート割当領域内の座標であれば、取得された座標がスタート領域にある、言い換えれば、台車２０がスタート領域にあると判定する。取得された座標により台車２０がスタート領域にないと判定された場合には（ステップＳ２０２のＮ）、台車２０をシート３１のスタートマス３３ａに置くことを促すエラーを出力して処理を終了する（ステップＳ２０３）。
【００５１】
取得された座標により台車２０がスタート領域にあると判定された場合には（ステップＳ２０２のＹ）、マップ特定部６２は、現在の座標が示すマップＩＤを特定する（ステップＳ２０３）。より具体的には、マップ特定部６２は、初期位置取得部５０により取得された座標がスタート割当領域にある複数のマスのうちどのマスに属するか判定し、そのマスに関連付けられたマップＩＤを取得する。
【００５２】
そして、マップ特定部６２はマップＩＤに応じたマップ情報をマップ格納部７２から取得し、記憶部１２のＲＡＭに格納する（ステップＳ２０５）。図１１は、あるシート３１に紐づけられたマップ情報の一例を示す図である。図１２は、台車２０が配置されるシート３１の他の一例を示す図である。図１１のマップ情報は、図１２のシート３１に対応している。
【００５３】
マップ情報は、マス情報と、命令情報と、付加情報とを含む。マス情報は、シート３１に配置される５×５のマスのそれぞれの属性を示す。命令情報は、実習プログラムに従って動作する台車２０（自台車）と異なる台車２０（他台車）を動作させるプログラムを示す。付加情報は、その他の情報であり、スタート向き、ＣＰＵ向き、課題種別、巻数を含む。スタート向きはスタート時の自台車の向きであり、図１１の例ではシート３１の上側を北とした方角によりあらわされている。ＣＰＵ向きは、スタート時の他台車の向きである。課題種別は、シート３１において、実習プログラムを実行する際の動作の種別を表しており、例えば、他台車があるか否かなどを表している。命令情報は、他台車を動かすプログラムの命令列であり、そのプログラムは課題種別が他台車の存在を示す場合に実行される。以下では、「台車２０」と記載がある場合、特に断りがない場合は自台車を指すものとする。
【００５４】
マス情報に含まれる各マスの属性について説明する。通常マス３３ｎは、自台車が移動可能なマスであり、かつ実習プログラムに基づく停止や方向転換が可能なマスである。一方、滑り床３３ｓは氷上のような滑りやすい環境を模したマスであり、自台車は滑り床３３ｓのマスへ移動可能であるが、いったん滑り床３３ｓの上に移動すると、自台車は実習プログラムの命令に関わらず滑り床３３ｓと異なる属性のマスの上へ移動するか、壁（例えば通行不能マス３３ｉ）と衝突するまで同じ方向に動き続ける。このように、マスの属性は、台車２０の動作を規定する動作情報の一種であり、あらかじめ定められているマスの属性の種別（例えば通常マス３３ｎや滑り床３３ｓ）は、動作の種別にも相当する。また、マスの属性はモーションデータとも関連付けられている。モーションデータは台車２０の走行の態様を示す情報であり、モーションデータは、例えば、少し進んでは止まりながら進む（例えば通常マス３３ｎ上）、左右にふらつきながら進む、詰まらずにまっすぐ進む（例えば滑り床３３ｓ上）などの動作の詳細を定義する情報である。なお、マスの属性が、モーションデータの代わりに動作を制御する動作プログラムを特定してもよい。つまり、マスの属性に応じて複数の動作プログラムを準備しておき、マスの属性に応じた動作プログラムが実行されることで動作を規定してもよい。
【００５５】
マップ特定部６２がマップ情報を取得すると、スタート制御部５２は、付加情報に含まれるスタート向きと、初期位置取得部５０により取得された台車２０の位置および向きとに基づいて、台車２０のスタート位置および向きを調整する（ステップＳ２０７）。
【００５６】
スタート位置および向きが調整されると、実習プログラム実行部５４は、実習プログラムの実行を開始する。実習プログラム実行部５４は、実習プログラムの命令（ステップ）を順に実行し、今回のステップにおける移動先を取得し、移動先まで台車を移動させる（ステップＳ２０８）。そして、今回のステップが最後のステップでない場合には（ステップＳ２１０のＮ）、実習プログラム実行部５４は次のステップを実行対象とし、ステップＳ２０８から処理を繰り返す。一方、今回のステップが最後のステップである場合には（ステップＳ２１０のＹ）、実習プログラム実行部５４は、実習プログラムの実行を終了し、台車２０がゴールマス３３ｂに到達したか否かに応じたメッセージを出力する（ステップＳ２１２）。より具体的には、実習プログラム実行部５４は、台車２０がゴールマス３３ｂに到達した場合には、ミッションが成功したことを示す音声や画像を出力し、到達しない場合には、ユーザに再度のチャレンジを促す音声や画像を出力する。
【００５７】
ここで、ステップＳ２０８の処理について図１０を用いてさらに詳細に説明する。はじめに、実習プログラム実行部５４に含まれる走行マス特定部６５は、ユーザが作成した実習プログラムに基づいて、台車２０の移動先となる次のマスを決定する（ステップＳ２５１）。より具体的には、走行マス特定部６５は、実習プログラムの命令を順序にしたがって実行し、その命令が前方に１マスすすむなどの台車２０の移動を伴う命令である場合や、滑り床３３ｓにより命令による前回の移動から継続している場合には、その命令に従って次のマスを決定する。実習プログラム実行部５４に含まれる動作制御部６７は、次のマスが設定されない、または次のマスへ移動することが許されない場合には（ステップＳ２５２のＮ）、ステップＳ２０８の処理を終了し、ステップＳ２１０の処理へ遷移する。次のマスへ移動することが許されない場合とは、例えば移動先のマスの種別が通行不能マス３３ｉである場合である。つまり、動作制御部６７は、台車２０が次に向かうマスの種別に応じて、台車２０の移動を抑制している。
【００５８】
次のマスへ移動することが許される場合には（ステップＳ２５２のＹ）、実習プログラム実行部５４に含まれるマス属性取得部６６は、現在のマスの属性と、次のマスの属性とを取得する（ステップＳ２５４）。そして、実習プログラム実行部５４に含まれる動作制御部６７は、現在および次のマスの属性に応じた台車２０の移動態様を決定する（ステップＳ２５５）。動作制御部６７は、例えば現在のマスが通常マス３３ｎで次のマスが滑り床３３ｓである場合には、前半では通常マス３３ｎ上を少し進んでは止まりながら進み、後半では滑り床３３ｓ上を一定の速度で進むように台車２０の動くような台車２０の移動態様を決定する。次に、動作制御部６７は、決定された移動態様により台車２０を移動させる（ステップＳ２５６）。なお、走行マス特定部６５は、移動後のマス（次のマスとして決定されたマス）を現在のマスとして設定する（ステップＳ２５７）。
【００５９】
このように、マスの属性を設定し、その属性に応じた移動態様を設けることで、例えばシート３１ごとに専用のプログラムを作成しなくても、台車２０の移動のバリエーションを増やすことが可能になる。また、バリエーションを増やしつつ、マップの追加や変更が容易になる。
【００６０】
本実施形態では、追加情報取得部５６は、自走する台車２０を用いて印刷されたパターンを読み込むことにより、新たなシート３１についてのマップを追加することができる。以下では、追加情報取得部５６の処理の詳細を説明する。
【００６１】
図１３は、追加マップの情報が符号化された追加パターンを概略的に説明する図である。また、図１４は、追加パターンとマップ情報との対応の一例を示す図である。追加パターンは、読取開始を示す領域、マップＩＤが符号化された領域、マス情報が符号化された領域、付加情報が符号化された領域、命令情報が符号化された領域（命令情報１から１９）、および、読取終了を示す領域が所定の方向に並んで印刷されたものである。読取開始の領域は、追加マップの情報の読取を開始する前に、ユーザがいずれかの台車２０を配置する領域である。マップＩＤが符号化された領域には、読み取られるマップを識別する情報が符号化されたパターンが配置されており、具体的には、この領域には、図７に示されるスタート割当領域に属するマスのうちいずれかの領域にあるパターンが印刷されている。
【００６２】
マス情報の領域は、マス情報１から１３のパターン領域からなる。付加情報の領域は、付加情報１から４のパターン領域からなる。命令情報の領域は、命令情報１から１０のパターン領域からなる。マス情報１から１３のパターン領域のそれぞれは、２つのマスの属性を示す情報が符号化されている。本実施形態ではマスの数は２５であるため、マスの数の半分が小数点以下切り上げされた１３がマス情報の数になっている。なお、マス情報１は、マス１−１，１−２の属性の情報が符号化されており、マス情報２以降も前のマス情報に続く２つのマスの属性の情報が符号化されている。命令情報１から１０のパターン領域のそれぞれは、２つの命令を示す情報が符号化されている。命令情報１から１０は、２０の命令に復号される。
【００６３】
追加パターンに含まれるパターン領域のうち、読取開始を示す領域を除くものは、パターン領域が並ぶ方向の長さが、直行する方向の長さより短くなっている。これにより、読取に必要な領域を削減しつつ、台車２０が逸脱する可能性を減らすことができる。
【００６４】
図１４のパターンの欄に示される文字列は、座標空間内の各領域に紐づけられた一種の識別情報である。図１５は、追加マス領域におけるマス属性と座標との関係の一例を示す図である。座標空間内の追加マス領域は、ｘ軸方向に延びる境界線とｙ軸方向に延びる境界線とに囲まれる複数の矩形のセルに分割されており、それぞれのセルの座標領域はあるマスについて他の属性の種別と重複しないように割り当てられている。ｘ軸の座標は、マス情報に属する２つのマスのうち先行するマスの属性を示し、ｙ軸の座標は、あとに続くマスの属性を示している。図１５の区分された領域内における文字列は、図１４のパターンの欄に示される文字列に対応している。
【００６５】
パターン領域のそれぞれには、データに割り当てられた領域に属する複数の座標が符号化された単位パターンが並ぶように印刷されている。１つのパターン領域に複数の情報を持たせることで、座標空間内のより大きい領域を割り当てる必要が生じるが、読取に必要なパターン領域の数を減らすことができる。
【００６６】
図１６は、追加付加領域における付加情報と座標との関係の一例を示す図である。ｙ軸の座標は、課題種別、スタート向き、キャラ行動、追加マップ関連、巻情報などの付加情報の種別を表し、ｘ軸の座標はその付加情報の種別に設定されるデータを示している。そのデータは図１６の各セルに記載されている。ただし、課題種別については、ｙ軸で課題種別のうち大種別も示しており、ｘ軸はアクションの種類などの小種別を表している。課題種別のセルに記載される数値は、パターンの番号である。
【００６７】
図１７は、追加命令領域における命令と座標との関係の一例を示す図である。マス情報と同様に、ｘ軸の座標は、先行する命令を示し、ｙ軸の座標は、あとに続く命令を示している。図１５の区分された領域内における文字列は、図１４のパターンの欄に示される文字列に対応している。
【００６８】
図１８は、追加マップを読み取る処理の一例を示すフローチャートである。はじめに、追加情報取得部５６は、カメラ２４が撮影したパターンに基づいて、現在の台車２０の座標および向きを取得する（ステップＳ１０１）。この処理は、初期位置取得部５０の処理と同様である。
【００６９】
次に、追加情報取得部５６は、台車２０のスタート位置および向きを調整する（ステップＳ３０２）。より具体的には、現在の台車２０のスタート位置および向きが許容範囲内にない場合に、スタートとして適正な位置及び向きになるように移動させる。
【００７０】
次に、追加情報取得部５６は、台車２０を設定された方向へ向けて走行させる（ステップＳ３０３）。設定された方向は、始めは読取方向であるが後述する処理により修正される。そして、追加情報取得部５６は、カメラ２４により撮影された画像から、座標が符号化されたパターンを認識し、そのパターンが示す座標から、台車２０の位置する現在座標Ｐと台車２０の向きとを取得する（ステップＳ３０３）。ステップＳ３０３の処理は現在位置取得部５１の処理と同様である。ここで、現在座標Ｐを（ｘ，ｙ）とし、台車２０がｘ軸の正方向に移動するものとする。ここで、パターンが配置されていない領域に移動したなどの理由により、現在位置が取得できなかった場合には（ステップＳ３０５のＮ）、追加情報取得部５６はこれまでに読み取られた情報が適正であったか、読み取る量が必要より少なくなっていないか確認し（ステップＳ３１０）、適正でない場合はエラーメッセージを出力する。
【００７１】
一方、現在座標が取得された場合には（ステップＳ３０５のＹ）、追加情報取得部５６は、前回に取得された台車２０の座標である前回座標ＰＰと現在座標Ｐとの差が所定の閾値より大きいか否かを判定する（ステップＳ３０６）。所定の閾値は、現在座標Ｐの測定間隔で移動しうる最大の距離より大きく、マス情報１などのパターン領域の読取方向の最小の長さより小さい。前回座標ＰＰと現在座標Ｐとの差が所定の閾値より大きい場合には（ステップＳ３０６のＹ）、追加情報取得部５６は台車２０が別のパターン領域の上へ移ったと判断し、現在座標Ｐが示す情報を判定し、取得された情報をマップ格納部７２（具体的にはメモリ）にマスと関連付けるように追加する（ステップＳ３０７）。前回座標ＰＰと現在座標Ｐとの差が所定の閾値より小さい場合には（ステップＳ３０６のＮ）、追加情報取得部５６は台車２０が前回と同じパターン領域の上にあると判定し、ステップＳ３０７をスキップする。
【００７２】
ステップＳ３０７の処理が終了する、またはステップＳ３０６で位置の差が閾値以下であると判定された後に、追加情報取得部５６は現在位置Ｐの座標から、台車２０が移動の目標とする目標座標Ｔを算出し、目標座標Ｔと現在座標Ｐとに基づいて、走行する方向を設定する（ステップＳ３０８）。そして、ステップＳ３０３以降の処理を繰り返す。これにより、追加情報取得部５６は、所定の方向に自走する台車２０に備えられたカメラ２４が撮影した画像に基づいて、所定の方向に並ぶパターン領域から順にパターンを読み取り、マスに関連付けられるマス属性や命令などの情報を取得することができる。また、プログラムやデータを格納するカートリッジ１８が販売された後であっても、オフラインでマップなどのデータを追加することができる。
【図１】
2020036145.tif 000003
【図２】
2020036145.tif 000004
【図３】
2020036145.tif 000005
【図４】
2020036145.tif 000006
【図５】
2020036145.tif 000007
【図６】
2020036145.tif 000008
【図７】
2020036145.tif 000009
【図８】
2020036145.tif 000010
【図９】
2020036145.tif 000011
【図１０】
2020036145.tif 000012
【図１１】
2020036145.tif 000013
【図１２】
2020036145.tif 000014
【図１３】
2020036145.tif 000015
【図１４】
2020036145.tif 000016
【図１５】
2020036145.tif 000017
【図１６】
2020036145.tif 000018
【図１７】
2020036145.tif 000019
【図１８】
2020036145.tif 000020
【国際調査報告】
2020036145.tif 000021
2020036145.tif 000022
2020036145.tif 000023
2020036145.tif 000024