(57)【特許請求の範囲】
【請求項１】
カメラを含むコンピューティング装置により行われる方法であって、
コーディング教育のコンテンツを獲得する第１段階と、
前記コーディング教育のコンテンツに含まれた一つ以上のポイントを選択する第２段階と、
前記カメラから撮影された画像を獲得する第３段階と、
前記撮影された画像を認識し、前記撮影された画像に含まれた一つ以上の客体と前記一つ以上のポイントとをマッチングする第４段階と、
前記撮影された画像及び前記マッチングされた一つ以上のポイントを表示する第５段階と、
前記撮影された画像に仮想のロボットを表示する第６段階と、
前記仮想のロボットの動きを制御するための一つ以上のコマンドを各々含む一つ以上のコマンドブロックを表示する第７段階と、
前記表示された一つ以上のコマンドブロックに対するユーザ入力に基づき、前記一つ以上のコマンドブロックを前記一つ以上のポイントに配置する第８段階と、
前記一つ以上のコマンドブロックが配置された順序に従って前記仮想のロボットを制御し、前記仮想のロボットは、前記一つ以上のポイントに沿って移動し、各々のポイントに配置されたコマンドブロックに対応する命令を行う、第９段階と、
前記制御した結果による前記仮想のロボットの動きを表示する第１０段階と、
を含む、拡張現実を利用したコーディング教育方法。
【請求項２】
前記第１段階は、
前記コーディング教育のコンテンツに含まれたミッションを獲得する第１１段階と、
前記ミッションを表示する第１２段階と、を含み、
前記第９段階は、
前記制御した結果による前記ミッションの達成可否を判断する第１３段階と、前記ミッションの達成可否によるフィードバックを表示する第１４段階と、を含む、請求項１に記載の拡張現実を利用したコーディング教育方法。
【請求項３】
前記第１３段階は、
前記一つ以上の客体と前記仮想のロボット間のインタラクションを判断する第１５段階と、
前記インタラクションに基づいて前記一つ以上のポイントの各々でのミッション達成可否を判断する第１６段階と、を含み、
前記第１４段階は、
前記一つ以上のポイントの各々でのミッション達成可否によるフィードバックを表示する、第１７段階を含む、請求項２に記載の拡張現実を利用したコーディング教育方法。
【請求項４】
前記第１５段階は、
前記一つ以上の客体と前記仮想のロボット間の一つ以上の接点を判断する第１８段階と、
前記一つ以上の接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第１９段階と、
前記一つ以上の接点の位置、動き、及び前記一つ以上の接点の各々に対応する部位に基づいて、前記インタラクションを判断する第２０段階と、を含む、請求項３に記載の拡張現実を利用したコーディング教育方法。
【請求項５】
前記第２０段階は、
前記一つ以上の接点に含まれた第１接点を第２接点及び第３接点に分割する第２１段階と、
前記第２接点及び前記第３接点の動きを追跡する第２２段階と、
前記第２接点及び前記第３接点の間の距離が所定の基準値以上に離れる場合、前記第２接点及び前記第３接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第２３段階と、
前記第２接点及び前記第３接点の位置、動き、及び前記第２接点及び前記第３接点に各々対応する部位に基づいて前記インタラクションを判断する第２４段階と、を含む、請求項４に記載の拡張現実を利用したコーディング教育方法。
【請求項６】
前記第１１段階は、
前記一つ以上の客体の種類を判断する第２５段階と、
前記撮影された画像に含まれた前記一つ以上の客体の位置及び種類に基づいて前記仮想のロボットの移動経路を生成する第２６段階と、
前記仮想のロボットが前記移動経路に沿って移動するようにする第１ミッションを獲得する第２７段階と、
前記仮想のロボットが前記一つ以上の客体のうち少なくとも一つと所定のインタラクションを行うようにする第２ミッションを獲得する第２８段階と、を含む、請求項２に記載の拡張現実を利用したコーディング教育方法。
【請求項７】
前記第１１段階は、
前記移動経路上に一つ以上の仮想の客体を生成及び表示する第２９段階と、
前記一つ以上の仮想の客体の種類を決定する第３０段階と、
前記一つ以上の仮想の客体の位置及び種類に基づいて前記移動経路をアップデートする第３１段階と、
前記仮想のロボットが前記アップデートされた移動経路に沿って移動するようにする第３ミッションを獲得する第３２段階と、
前記仮想のロボットが前記一つ以上の仮想の客体のうち少なくとも一つと所定のインタラクションを行うようにする第４ミッションを獲得する第３３段階と、を含む、請求項６に記載の拡張現実を利用したコーディング教育方法。
【請求項８】
前記第８段階は、
前記一つ以上のコマンドブロックのうち少なくとも一部を前記仮想のロボットに配置する第３４段階をさらに含み、
前記第９段階は、
前記仮想のロボットに配置されたコマンドブロックに対応する命令を行う第３５段階と、
前記一つ以上のポイントに到着する場合、前記到着したポイントに配置されたコマンドブロックに対応する命令を行う第３６段階と、
前記仮想のロボットに配置されたコマンドブロックに対応する命令と、前記到着したポイントに配置されたコマンドブロックに対応する命令とが衝突する場合、動作を停止してフィードバックを表示する第３７段階と、をさらに含む、請求項１に記載の拡張現実を利用したコーディング教育方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張現実を利用したコーディング教育方法に関する。
【背景技術】
【０００２】
コーディング教育に対する関心が高まるに伴い、初心者又は児童、青少年を対象としてプログラミング言語を直接扱うのではなく、ブロック形態のコマンド集を提供し、これを配置することによってコーディング学習が可能なようにするアプリケーション及びサービスが提供されている。また、コーディングの結果を視覚的に見せて、興味を誘導することができるように、コーディングによって動作するロボットを利用した学習サービスが提供されている。
【０００３】
拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）は、現実世界に仮想の物体を重ねて見せる技術である。現実世界にリアルタイムで付加情報を有する仮想世界を合わせて一つの画像で示しているので、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、ＭＲ）ともいう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、拡張現実を利用したコーディング教育方法を提供することにある。
【０００５】
本発明が解決しようとする課題は、以上で言及された課題に制限されず、言及されていないまた別の解決課題は、以下の記載から通常の技術者にとって明確に理解されるべきである。
【課題を解決するための手段】
【０００６】
前述した課題を解決するための本発明の一面に従ってカメラを含むコンピューティング装置により行われる方法は、コーディング教育のコンテンツを獲得する第１段階と、前記コーディング教育のコンテンツに含まれた一つ以上のポイントを選択する第２段階と、前記カメラから撮影された画像を獲得する第３段階と、前記撮影された画像を認識し、前記撮影された画像に含まれた一つ以上の客体と前記一つ以上のポイントとをマッチングする第４段階と、前記撮影された画像及び前記マッチングされた一つ以上のポイントを表示する第５段階と、前記撮影された画像に仮想のロボットを表示する第６段階と、前記仮想のロボットの動きを制御するための一つ以上のコマンドを各々含む一つ以上のコマンドブロックを表示する第７段階と、前記表示された一つ以上のコマンドブロックに対するユーザ入力に基づき、前記一つ以上のコマンドブロックを前記一つ以上のポイントに配置する第８段階と、前記一つ以上のコマンドブロックが配置された順序に従って前記仮想のロボットを制御し、前記仮想のロボットは、前記一つ以上のポイントに沿って移動し、各々のポイントに配置されたコマンドブロックに対応する命令を行う、第９段階と、前記制御結果による前記仮想のロボットの動きを表示する第１０段階と、を含む。
【発明の効果】
【０００７】
開示された実施例に係ると、拡張現実を利用して、実際のロボットがなくても仮想のロボットを利用したコーディング教育を提供することができるという効果がある。
【０００８】
本発明の効果は、以上で言及された効果に制限されず、言及されていないまた別の効果は、以下の記載から通常の技術者にとって明確に理解されるべきである。
【図面の簡単な説明】
【０００９】
【図１】一実施例に係る拡張現実を利用したコーディング教育方法を示すフローチャートである。
【図２】一実施例に係るコーディング教育のコンテンツ獲得方法、及びこれに対応する仮想のロボット制御方法を具体的に説明するための図である。
【図３】一実施例に係り、ミッションの達成可否を判断する方法を具体的に示すフローチャートである。
【図４】一実施例に係り、インタラクションを判断する方法を説明するフローチャートである。
【図５】一実施例に係り、接点及びインタラクションを判断する方法を具体的に説明するフローチャートである。
【図６】ミッションを獲得する一例を示すフローチャートである。
【図７】仮想の客体に基づいてミッションを獲得する一例を説明するフローチャートである。
【図８】一実施例に係り、コマンドブロックを配置する方法を説明するフローチャートである。
【図９】一実施例に係るコンピューティング装置の構成図である。
【発明を実施するための最良の形態】
【００１０】
前述した課題を解決するための本発明の一面に従ってカメラを含むコンピューティング装置により行われる方法は、コーディング教育のコンテンツを獲得する第１段階と、前記コーディング教育のコンテンツに含まれた一つ以上のポイントを選択する第２段階と、前記カメラから撮影された画像を獲得する第３段階と、前記撮影された画像を認識し、前記撮影された画像に含まれた一つ以上の客体と前記一つ以上のポイントとをマッチングする第４段階と、前記撮影された画像及び前記マッチングされた一つ以上のポイントを表示する第５段階と、前記撮影された画像に仮想のロボットを表示する第６段階と、前記仮想のロボットの動きを制御するための一つ以上のコマンドを各々含む一つ以上のコマンドブロックを表示する第７段階と、前記表示された一つ以上のコマンドブロックに対するユーザ入力に基づき、前記一つ以上のコマンドブロックを前記一つ以上のポイントに配置する第８段階と、前記一つ以上のコマンドブロックが配置された順序に従って前記仮想のロボットを制御し、前記仮想のロボットは、前記一つ以上のポイントに沿って移動し、各々のポイントに配置されたコマンドブロックに対応する命令を行う、第９段階と、前記制御結果による前記仮想のロボットの動きを表示する第１０段階と、を含む。
【００１１】
また、前記第１段階は、前記コーディング教育のコンテンツに含まれたミッションを獲得する第１１段階と、前記ミッションを表示する第１２段階と、を含み、前記第９段階は、前記制御結果による前記ミッションの達成可否を判断する第１３段階と、前記ミッションの達成可否によるフィードバックを表示する第１４段階と、を含むことができる。
【００１２】
また、前記第１３段階は、前記一つ以上の客体と前記仮想のロボット間のインタラクションを判断する第１５段階と、前記インタラクションに基づいて前記一つ以上のポイントの各々でのミッション達成可否を判断する第１６段階と、を含み、前記第１４段階は、前記一つ以上のポイントの各々でのミッション達成可否によるフィードバックを表示する、第１７段階を含むことができる。
【００１３】
また、前記第１５段階は、前記一つ以上の客体と前記仮想のロボット間の一つ以上の接点を判断する第１８段階と、前記一つ以上の接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第１９段階と、前記一つ以上の接点の位置、動き、及び前記一つ以上の接点の各々に対応する部位に基づいて、前記インタラクションを判断する第２０段階と、を含むことができる。
【００１４】
また、前記第２０段階は、前記一つ以上の接点に含まれた第１接点を第２接点及び第３接点に分割する第２１段階と、前記第２接点及び前記第３接点の動きを追跡する第２２段階と、前記第２接点及び前記第３接点の間の距離が所定の基準値以上に離れる場合、前記第２接点及び前記第３接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第２３段階と、前記第２接点及び前記第３接点の位置、動き、及び前記第２接点及び前記第３接点に各々対応する部位に基づいて前記インタラクションを判断する第２４段階と、を含むことができる。
【００１５】
また、前記第１１段階は、前記一つ以上の客体の種類を判断する第２５段階と、前記撮影された画像に含まれた前記一つ以上の客体の位置及び種類に基づいて前記仮想のロボットの移動経路を生成する第２６段階と、前記仮想のロボットが前記移動経路に沿って移動するようにする第１ミッションを獲得する第２７段階と、前記仮想のロボットが前記一つ以上の客体のうち少なくとも一つと所定のインタラクションを行うようにする第２ミッションを獲得する第２８段階と、を含むことができる。
【００１６】
また、前記第１１段階は、前記移動経路上に一つ以上の仮想の客体を生成及び表示する第２９段階と、前記一つ以上の仮想の客体の種類を決定する第３０段階と、前記一つ以上の仮想の客体の位置及び種類に基づいて前記移動経路をアップデートする第３１段階と、前記仮想のロボットが前記アップデートされた移動経路に沿って移動するようにする第３ミッションを獲得する第３２段階と、前記仮想のロボットが前記一つ以上の仮想の客体のうち少なくとも一つと所定のインタラクションを行うようにする第４ミッションを獲得する第３３段階と、を含むことができる。
【００１７】
また、前記第８段階は、前記一つ以上のコマンドブロックのうち少なくとも一部を前記仮想のロボットに配置する第３４段階をさらに含み、前記第９段階は、前記仮想のロボットに配置されたコマンドブロックに対応する命令を行う第３５段階と、前記一つ以上のポイントに到着する場合、前記到着したポイントに配置されたコマンドブロックに対応する命令を行う第３６段階と、前記仮想のロボットに配置されたコマンドブロックに対応する命令と、前記到着したポイントに配置されたコマンドブロックに対応する命令とが衝突する場合、動作を停止してフィードバックを表示する第３７段階と、をさらに含むことができる。
【００１８】
本発明のその他の具体的な事項は、詳細な説明及び図に含まれている。
【発明を実施するための形態】
【００１９】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付図と共に詳細に後述されている実施例を参照すると明確になる。しかし、本発明は、以下で開示される実施例に制限されるわけではなく、互いに異なる様々な形態で実現されることができ、単に本実施例は、本発明の開示が完全であるようにし、本発明が属する技術分野の通常の技術者に本発明の範疇を完全に知らせるために提供され、本発明は、請求項の範疇により定義されるだけである。
【００２０】
本明細書で使用されている用語は、実施例を説明するためであり、本発明を制限するものではない。本明細書において、単数形は、文句で特に言及しない限り、複数形も含む。明細書で使用される「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、言及された構成要素以外に一つ以上の他の構成要素の存在又は追加を排除しない。明細書全体にわたって同一の図面符号は同一の構成要素を指し、「及び／又は」は、言及された構成要素の各々及び一つ以上の全ての組み合わせを含む。たとえ「第１」、「第２」等が様々な構成要素を叙述するために使用されても、これらの構成要素は、これらの用語により制限されないのは勿論である。これらの用語は、単に一つの構成要素を他の構成要素と区別するために使用する。従って、以下で言及される第１構成要素は、本発明の技術的思想内で第２構成要素であることもあるのは勿論である。
【００２１】
別の定義がなければ、本明細書で使用される全ての用語（技術及び科学的用語を含む）は、本発明が属する技術分野における通常の技術者に共通的に理解できる意味として使用できる。また、一般的に使用される辞書に定義されている用語は、明らかに異なって定義されない限り、理想的に又は過度に解釈されない。
【００２２】
明細書で使用される「部」又は「モジュール」という用語は、ソフトウェア、ＦＰＧＡ又はＡＳＩＣのようなハードウェアの構成要素を意味し、「部」又は「モジュール」はいかなる役割を行う。しかし、「部」又は「モジュール」は、ソフトウェア又はハードウェアに限定される意味ではない。「部」又は「モジュール」は、アドレッシングできる格納媒体にあるように構成されてもよく、一つ又はそれ以上のプロセッサを再生させるように構成されてもよい。従って、一例として、「部」又は「モジュール」は、ソフトウェアの構成要素、客体指向ソフトウェアの構成要素、クラスの構成要素、及びタスクの構成要素のような構成要素、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。構成要素と「部」又は「モジュール」の中で提供される機能は、より小さい数の構成要素、及び「部」又は「モジュール」で結合されるか、更なる構成要素と「部」又は「モジュール」にさらに分離されることができる。
【００２３】
空間的に相対的な用語である「下（ｂｅｌｏｗ）」、「下（ｂｅｎｅａｔｈ）」、「下部（ｌｏｗｅｒ）」、「上（ａｂｏｖｅ）」、「上部（ｕｐｐｅｒ）」等は、図に示しているように、一つの構成要素と他の構成要素との相関関係を容易に記述するために使用されることができる。空間的に相対的な用語は、図に示している方向に加えて使用時、又は動作時に構成要素の互いに異なる方向を含む用語として理解されるべきである。例えば、図に示している構成要素を覆す場合、他の構成要素の「下（ｂｅｌｏｗ）」又は「下（ｂｅｎｅａｔｈ）」と記述された構成要素は、他の構成要素の「上（ａｂｏｖｅ）」に置かれ得る。従って、例示的な用語である「下」は、下と上の方向をいずれも含むことができる。構成要素は、異なる方向にも配向され得、これによって、空間的に相対的な用語は、配向によって解釈され得る。
【００２４】
本明細書で説明される各段階と共に記載された番号（例：第１段階、第２段階等）は、各段階を区分するためのものであり、各段階の実行順序や前後関係を特定するためのものではない。
【００２５】
本明細書において、「ロボット」又は「仮想のロボット」は、制御による命令を行うハードウェア装置又はソフトウェア的に構成された仮想の装置を意味し、特定の種類を限定するためのものではない。
【００２６】
本明細書において、コンピューティング装置は、少なくとも一つのプロセッサを含む全ての種類のハードウェア装置を意味し、実施例に係り、該当ハードウェア装置で動作するソフトウェア的構成も包括する意味として理解されることができる。例えば、コンピューティング装置は、スマートフォン、タブレットＰＣ、コンピュータ、及び各装置で駆動されるユーザクライアント及びアプリケーションを全て含む意味として理解されることができ、また、これに制限されるわけではない。
【００２７】
以下、添付図を参照として、本発明の実施例を詳細に説明する。
【００２８】
図１乃至図８に関して説明される各段階は、コンピューティング装置により行われると説明されるが、各段階の主体はこれに制限されるわけではなく、実施例に係り、各段階の少なくとも一部が互いに異なる装置で行われることもある。
【００２９】
以下で開示される実施例において、コンピューティング装置はカメラを含み、カメラを利用して周辺画像を撮影し、撮影された画像に仮想のロボットを結合した拡張現実の画像を表示する。
【００３０】
コンピューティング装置はユーザ入力によって仮想のロボットを制御するためのコマンドを獲得し、獲得されたコマンドによって仮想のロボットを制御し、制御結果を表示する。
【００３１】
仮想のロボットは、制御によって撮影された画像に含まれた客体及び拡張現実の画像に含まれた仮想の客体とインタラクションして動作し、コンピューティング装置は、インタラクションの結果によるフィードバックを提供する。
【００３２】
図１は、一実施例に係る拡張現実を利用したコーディング教育方法を示すフローチャートである。
【００３３】
段階Ｓ１０１で、コンピューティング装置は、コーディング教育のコンテンツを獲得する第１段階を行う。
【００３４】
一実施例において、コンピューティング装置はネットワークを介してサーバからコーディング教育のコンテンツを獲得する。別の実施例において、コンピューティング装置はメモリに格納されたコーディング教育のコンテンツを獲得することができ、また、所定の規則に基づいてコーディング教育のコンテンツを生成することもできる。
【００３５】
段階Ｓ１０２で、コンピューティング装置は、前記コーディング教育のコンテンツに含まれた一つ以上のポイントを選択する第２段階を行う。
【００３６】
一実施例において、コーディング教育のコンテンツは、仮想のロボットに一つ以上の実際又は仮想の客体とインタラクションして移動するようにするコマンドを作成するためのものであり得る。
【００３７】
例えば、コーディング教育のコンテンツは、仮想のロボットに一つ以上の障害物を避けて特定経路に移動するようにするコマンドを作成するためのものであり得る。また、コーディング教育のコンテンツは、仮想のロボットに移動経路上で特定の客体を取って運搬するようにするコマンドを作成するためのものであり得る。
【００３８】
従って、コーディング教育のコンテンツに含まれた一つ以上のポイントは、仮想のロボットとインタラクションする対象になる一つ以上の客体を意味する。例えば、一つ以上の客体は、仮想のロボットが避けるべき障害物であってもよく、仮想のロボットが運搬すべき物等を含んでもよい。
【００３９】
段階Ｓ１０３で、コンピューティング装置は、前記カメラから撮影された画像を獲得する第３段階を行う。
【００４０】
段階Ｓ１０４で、コンピューティング装置は、前記撮影された画像を認識し、前記撮影された画像に含まれた一つ以上の客体と前記一つ以上のポイントとをマッチングする。
【００４１】
例えば、一つ以上の客体は、撮影された画像に含まれた特定の物を意味することもあり、実施例にかかり、壁や底の特定位置がコンピューティング装置の選択によって客体として認識されることもある。
【００４２】
コンピューティング装置は、撮影された画像に含まれた一つ以上の客体に対して、コーディング教育のコンテンツに含まれた一つ以上のポイントを各々マッチングさせる。例えば、撮影された画像に含まれた特定の物が、コーディング教育のコンテンツに含まれた障害物としてマッチングされ、仮想のロボットが該当物を避けていくようにコマンドを作成し得る。
【００４３】
同様に、撮影された画像に含まれた特定の物に対して、仮想のロボットが該当の物を持って移動するようにコマンドを作成し得る。この場合、仮想のロボットが実際の物を持って移動することはできないので、コンピューティング装置は、仮想のロボットの動き及び仮想のロボットと実際の物（具体的には、コンピューティング装置の画面に表示される撮影された実際の物）との位置関係に基づいて、実際の物を仮想のロボットが取ったものと判断し、仮想のロボットが動くことによって該当物が仮想のロボットと共に移動するものと判断し得る。実施例にかかり、コンピューティング装置は、仮想のロボットにより移動される実際の物を画面から除去し、実際の物又は実際の物とマッチングされたポイントに対応する仮想の物が仮想のロボットにより移動される画像を表示することができるが、これに制限されるわけではない。
【００４４】
コンピューティング装置が仮想のロボットと実際の物との間の位置関係を判断する方法については、具体的に後述する。
【００４５】
段階Ｓ１０５で、コンピューティング装置は、前記撮影された画像及び前記マッチングされた一つ以上のポイントを表示する第５段階を行う。
【００４６】
例えば、コンピューティング装置は撮影された画像を表示するが、撮影された画像で認識された一つ以上の客体が撮影された位置にコーディング教育のコンテンツに含まれたポイント（又はポイントに対応する仮想の客体）を表示する。各々の客体とマッチングされたポイントは、実際の客体の位置で客体を代替して表示されてもよく、客体とオーバーラップされて表示されてもよい。
【００４７】
段階Ｓ１０６で、コンピューティング装置は、前記撮影された画像に仮想のロボットを表示する第６段階を行う。仮想のロボットの大きさ及び形態は制限されない。実施例にかかり、仮想のロボットは、仮想の客体とインタラクションするための道具（例えば、仮想の客体を取って移動するためのトング等）を含むことができる。
【００４８】
段階Ｓ１０７で、コンピューティング装置は、前記仮想のロボットの動きを制御するための一つ以上のコマンドを各々含む一つ以上のコマンドブロックを表示する第７段階を行うことができる。
【００４９】
例えば、各々のコマンドブロックは、仮想のロボットを特定の方向に移動するようにするコマンド（例えば、前進、後進、左回転、右回転等）を含むことができる。
【００５０】
また、各々のコマンドブロックは、仮想のロボットと客体をインタラクションするようにするコマンド（例えば、客体を取る動作、客体と衝突したり客体を避ける動作、客体を押す動作等）を含むことができる。
【００５１】
また、各々のコマンドブロックは、特定の条件に基づいて行われるコマンド（例えば、客体が認識されると停止したり、回避したり、客体を取るようにする等）を含むことができる。
【００５２】
段階Ｓ１０８で、コンピューティング装置は、前記表示された一つ以上のコマンドブロックに対するユーザ入力に基づいて、前記一つ以上のコマンドブロックを前記一つ以上のポイントに配置する第８段階を行う。
【００５３】
例えば、コンピューティング装置は、タッチスクリーン装置を介してユーザから表示された一つ以上のコマンドブロックの各々を選択及びドラッグアンドドロップするタッチ入力を受信し、受信されたユーザ入力に対応する位置に各々のコマンドブロックを移動させて表示することができる、各々のコマンドブロックは、ユーザの選択によって、各々のポイントに移動して配置されることができ、各々のポイントは、前述したようにコーディング教育のコンテンツに含まれているものであって、仮想のロボットが移動する中に方向変換や特定命令の実行が必要なポイントを含む意味として理解されることができる。
【００５４】
例えば、各々のポイントは、仮想のロボットが避けるべき障害物や、通り過ぎるべき通路、開けて通過すべきドア、方向を変換すべき壁等を意味することができ、各々のポイントは、カメラで撮影された画像に含まれた一つ以上の客体にマッチングされる。例えば、各々のポイントは、カメラで撮影された画像に含まれた実際の壁、底の特定位置、底に位置する物等に対応してマッチングされることができ、ユーザの入力によってコマンドブロックが各々のポイントに配置されることができる。一つのポイントに複数のコマンドブロックが配置される場合、配置された順序に従って配置されることができ、順序は、ユーザ入力によって変更され得る。
【００５５】
段階Ｓ１０９で、コンピューティング装置は、前記一つ以上のコマンドブロックが配置された順序に従って前記仮想のロボットを制御するが、前記仮想のロボットは、前記一つ以上のポイントに沿って移動し、各々のポイントに配置されたコマンドブロックに対応する命令を行う、第９段階を行う。
【００５６】
例えば、仮想のロボットは、コーディング教育のコンテンツに含まれたポイントに沿って移動し、各々のポイントに到着する場合、各々のポイントに配置されたコマンドブロックに対応する命令を行う。
【００５７】
例えば、仮想のロボットは、障害物が配置されたポイントに到着し、該当ポイントに右回転して直進するようにという命令と、左回転して直進するようにという命令とを含むコマンドブロックが順通りに配置されている場合、右回転して直進した後に左回転して直進することによって、障害物を避けて前進することができる。
【００５８】
別の例として、仮想のロボットは、特定のポイントで、ポイントに配置された客体を取るようにという命令と、直進するようにという命令とを含むコマンドブロックが順通りに配置されている場合、ポイントに配置された客体を取った後に直進することができる。
【００５９】
また別の例として、仮想のロボットは、直進できる通路に対応するポイントで、該当通路に進入せずに右回転して直進するようにというコマンドブロックが配置されている場合、該当通路に進入せずに右回転して直進することができる。
【００６０】
段階Ｓ１１０で、コンピューティング装置は、前記制御結果による前記仮想のロボットの動きを表示する第１０段階を行う。即ち、コンピューティング装置は、前述した制御による仮想のロボットの動きとインタラクションを表示する。
【００６１】
図２は、一実施例に係るコーディング教育のコンテンツ獲得方法及びこれに対応する仮想のロボット制御方法を具体的に説明するための図である。
【００６２】
前述した段階Ｓ１０１で、コンピューティング装置は、前記コーディング教育のコンテンツに含まれたミッションを獲得する第１１段階（Ｓ１１１）を行う。
【００６３】
例えば、コーディング教育のコンテンツに含まれたミッションは、仮想のロボットを特定の位置から他の位置に移動するようにするミッション、特定の経路に沿って仮想のロボットを移動するようにするミッション、仮想のロボットが特定の客体を移すようにするミッション等を含むことができるが、これに制限されない。
【００６４】
また、コンピューティング装置は、前記ミッションを表示する第１２段階（Ｓ１１２）を行う。
【００６５】
前述した段階Ｓ１０９で、コンピューティング装置は、前記制御結果による前記ミッションの達成可否を判断する第１３段階（Ｓ１１３）を行う。
【００６６】
一実施例において、各々のミッションは、ミッション内容による一つ以上のポイントを含み、コンピューティング装置は、各々のポイントを撮影された画像とマッチングさせた後、仮想のロボットが撮影された画像内に拡張現実を介して動く間に、仮想のロボットと各々のポイント（即ち、各ポイントとマッチングされた撮影された画像の部分）間のインタラクションを判断、ミッションの達成可否を判断することができる。
【００６７】
また、コンピューティング装置は、前記ミッションの達成可否によるフィードバックを表示する第１４段階（Ｓ１１４）を行う。
【００６８】
例えば、コンピューティング装置は、仮想のロボットの動作が完了した後、ミッションの達成可否を判断し、これに基づいてミッションの達成可否又はミッションが失敗した場合、どこで失敗し、何が問題であるかを含むフィードバックを生成及び提供することができる。
【００６９】
また、コンピューティング装置は、仮想のロボットの動きをリアルタイムで判断し、各々の動作に対してミッションに従っているか、又はミッションから外れているかを判断してフィードバックを提供することができる。
【００７０】
一実施例において、コンピューティング装置は、各々のポイントに配置されたコマンドブロックの配置に基づいてミッションの成功可否を予め判断することもでき、この場合、コマンドブロックの配置を変更することを要請するフィードバックを提供することができる。
【００７１】
図３は、一実施例にかかり、ミッションの達成可否を判断する方法を具体的に示すフローチャートである。
【００７２】
前述した段階Ｓ１１３で、コンピューティング装置は、前記一つ以上の客体と前記仮想のロボット間のインタラクションを判断する第１５段階（Ｓ１１５）を行う。
【００７３】
例えば、コンピューティング装置は、撮影された画像に含まれた客体又はこれにマッチングされたポイントに対応する仮想のイメージと仮想のロボット間の位置関係に基づいてインタラクションを判断することができる。
【００７４】
一実施例において、仮想のロボットには超音波センサが含まれることができる。また、仮想のロボットには、超音波センサから感知される距離によるコマンドが配置されることができる。この場合、コンピューティング装置は、客体と仮想のロボット間の距離及び角度を判断し、これから超音波センサの仮想の出力を算出する。コンピューティング装置は、算出された仮想の出力に基づいて仮想のロボットを制御することができる。また、コンピューティング装置は、一つ以上の客体と仮想のロボット間の接点に基づいてインタラクションを判断することができ、具体的な方法について後述する。
【００７５】
また、コンピューティング装置は、前記インタラクションに基づいて前記一つ以上のポイントの各々でのミッション達成可否を判断する第１６段階（Ｓ１１６）を行う。
【００７６】
例えば、コーディング教育のコンテンツによると、特定のポイントに対して、仮想のロボットに該当ポイントと衝突せずに避けていくようにするミッションが割り当てられていることがあり、これに対応し、コンピューティング装置は、該当ポイントに到達する前に仮想のロボットの方向を変換してこれを避けていくようにするコマンドブロックを配置することがある。この場合、仮想のロボットは、コンピューティング装置の制御によって該当ポイントと衝突せずに避けていくことになり、コンピューティング装置は、該当ポイントのミッションが達成されたものと判断することができる。
【００７７】
また、前述した段階Ｓ１１４で、コンピューティング装置は、前記一つ以上のポイントの各々でのミッション達成可否によるフィードバックを表示する、第１７段階（Ｓ１１７）を行う。
【００７８】
例えば、コンピューティング装置は、各々のポイントでのミッションが達成された場合、該当ポイントの色等を異なって表現することによって、ミッションの達成可否に対するフィードバックを提供することができるが、これに制限されるわけではない。
【００７９】
図４は、一実施例にかかり、インタラクションを判断する方法を説明するフローチャートである。
【００８０】
前述した段階Ｓ１１５で、コンピューティング装置は、前記一つ以上の客体と前記仮想のロボット間の一つ以上の接点を判断する第１８段階（Ｓ１１８）を行う。
【００８１】
例えば、コンピューティング装置は、拡張現実の画像を分析し、一つ以上の客体と仮想のロボット間の接点を判断する。例えば、接点は、拡張現実の画像で、客体と仮想のロボットとが接したり重なる部分を意味することができる。
【００８２】
また、コンピューティング装置は、前記一つ以上の接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第１９段階（Ｓ１１９）を行う。
【００８３】
例えば、コンピューティング装置は、一つ以上の接点の各々に対して、該当接点が客体と仮想のロボットのどの部位に該当するかを判断することができる。例えば、客体が仮想のロボットにより運搬されなければならないボックスである場合、接点はボックスの一部分と、仮想のロボットでボックスを運搬するのに利用されるトングの一部に対応し得る。
【００８４】
また、コンピューティング装置は、前記一つ以上の接点の位置、動き、及び前記一つ以上の接点の各々に対応する部位に基づいて、前記インタラクションを判断する第２０段階（Ｓ１２０）を行う。
【００８５】
例えば、第１接点と第２接点が判断された場合、第１接点が運搬対象のボックスの一地点に、第２接点が他の一地点に対応し得る。同様に、第１接点が仮想のロボットに含まれたトングの一方の部分に、第２接点がトングの他方の部分に対応し得る。この場合、コンピューティング装置は、仮想のロボットがトングを利用して運搬対象のボックスを取ったことを判断することができる。また、この状態で第１接点と第２接点の位置が移動する場合、コンピューティング装置は、接点の移動方向に沿って仮想のロボットが運搬対象のボックスを持ち上げたり、持ち運ぶと判断することができる。
【００８６】
図５は、一実施例にかかり、接点及びインタラクションを判断する方法を具体的に説明するフローチャートである。
【００８７】
前述した段階Ｓ１２０で、コンピューティング装置は、前記一つ以上の接点に含まれた第１接点を第２接点及び第３接点に分割する第２１段階（Ｓ１２１）を行う。
【００８８】
例えば、一つの接点が判断された場合にも、コンピューティング装置は、該当接点を予備として２つ又はそれ以上の複数の接点に分割するが、各々の接点が同じ位置にあると判断することができる。
【００８９】
また、コンピューティング装置は、前記第２接点及び前記第３接点の動きを追跡する第２２段階（Ｓ１２２）を行う。
【００９０】
また、コンピューティング装置は、前記第２接点及び前記第３接点間の距離が所定の基準値以上に離れる場合、前記第２接点及び前記第３接点の各々に対応する前記一つ以上の客体及び前記仮想のロボットの部位を判断する第２３段階（Ｓ１２３）を行う。
【００９１】
一実施例において、接点に対応する客体又は仮想のロボットの部位が分離されて互いに離れることがある。例えば、客体が２以上に分離できる。客体が分離できるブロックを積んだ形態であるか、又は仮想のロボットとのインタラクションにより切断される等の実施例があり得る。また、仮想のロボットのトングが閉じた状態から開いた状態に切り換えられる。このとき、トングの先端が接点に対応した場合、トングが開くにつれて、接点が２以上に分離できる。
【００９２】
また、コンピューティング装置は、前記第２接点及び前記第３接点の位置、動き、並びに前記第２接点及び前記第３接点に各々対応する部位に基づいて、前記インタラクションを判断する第２４段階（Ｓ１２４）を行う。
【００９３】
コンピューティング装置は、接点が２以上に分離される場合、分離された各々の接点に対応する客体と仮想のロボットの部位を再度判断し、客体と仮想のロボット間のインタラクションを判断することができる。
【００９４】
一実施例において、客体と仮想のロボットが接触してから離れ得る。この場合、客体側の接点と仮想のロボット側の接点に既存の接点が分離でき、コンピューティング装置は、各々の接点に対応する対象体及び部位を再度判断し、客体と仮想のロボット間のインタラクションを判断することができる。
【００９５】
即ち、コンピューティング装置は接点の生成を判断するが、以降、接点が消えたり、２以上に分離される動作を全て追跡することによって、仮想のロボットと客体間のインタラクションを判断することができる。
【００９６】
図６は、ミッションを獲得する一例を示すフローチャートである。
【００９７】
前述した段階Ｓ１１１で、コンピューティング装置は、前記一つ以上の客体の種類を判断する第２５段階（Ｓ１２５）を行う。
【００９８】
例えば、コンピューティング装置は、各々の客体が仮想のロボットにより運搬されなければならない客体であるか、仮想のロボットが避けなければならない客体であるか、仮想のロボットが通り過ぎることができる客体であるか等を判断することができる。
【００９９】
また、コンピューティング装置は、前記撮影された画像に含まれた前記一つ以上の客体の位置及び種類に基づいて、前記仮想のロボットの移動経路を生成する第２６段階（Ｓ１２６）を行う。
【０１００】
例えば、コンピューティング装置は、各々の客体の種類を判断した結果に基づいて仮想のロボットが移動すべき経路を生成することができ、該当経路は、仮想のロボットが移動できる最適の経路又は経路の範囲等を含むことができるが、これに制限されるわけではない。
【０１０１】
また、コンピューティング装置は、前記仮想のロボットが前記移動経路に沿って移動するようにする第１ミッションを獲得する第２７段階（Ｓ１２７）を行う。
【０１０２】
移動経路の範囲は難易度に応じて互いに異なって設定され得、仮想のロボットが所定範囲内に移動するようにするミッションが獲得されることもあり、仮想のロボットの移動経路を位相的に解釈して同一範囲の移動経路と判断される場合、ミッションを達成したものと判断するミッションが獲得されることもある。
【０１０３】
また、コンピューティング装置は、前記仮想のロボットが前記一つ以上の客体のうち少なくとも一つと所定のインタラクションを行うようにする第２ミッションを獲得する第２８段階（Ｓ１２８）を行う。
【０１０４】
例えば、ミッションは仮想のロボットに特定の客体を避けて行ったり、衝突したり、運搬するようにするミッションを含むことができるが、これに制限されるわけではない。
【０１０５】
図７は、仮想の客体に基づいてミッションを獲得する一例を説明するフローチャートである。
【０１０６】
前述した段階Ｓ１１１で、コンピューティング装置は、前記移動経路上に一つ以上の仮想の客体を生成及び表示する第２９段階（Ｓ１２９）を行う。
【０１０７】
例えば、仮想の客体は、撮影された画像に含まれていない客体であって、撮影された画像の一地点に拡張現実を利用して表示されることができる。
【０１０８】
また、コンピューティング装置は、前記一つ以上の仮想の客体の種類を決定する第３０段階（Ｓ１３０）を行う。
【０１０９】
例えば、仮想の客体の種類は、仮想のロボットにより運搬されるべき客体、仮想のロボットが避けるべき客体、仮想のロボットが通り過ぎることができる客体等を含むことができ、これに制限されるわけではない。
【０１１０】
また、コンピューティング装置は、前記一つ以上の仮想の客体の位置及び種類に基づいて前記移動経路をアップデートする第３１段階（Ｓ１３１）を行う。
【０１１１】
例えば、追加された仮想の客体が仮想のロボットが避けるべき障害物である場合、これを避けて移動することができるように移動経路がアップデートできる。
【０１１２】
また、コンピューティング装置は、前記仮想のロボットが前記アップデートされた移動経路に沿って移動するようにする第３ミッションを獲得する第３２段階（Ｓ１３２）を行う。
【０１１３】
また、コンピューティング装置は、前記仮想のロボットが前記一つ以上の仮想の客体のうち少なくとも一つと所定のインタラクションを行うようにする第４ミッションを獲得する第３３段階（Ｓ１３３）を行う。
【０１１４】
例えば、第４ミッションは、仮想のロボットが仮想の客体を運搬したり、複数の仮想の客体を利用して特定の模様を作ったり、ブロックのように複数の仮想の客体を積み上げるようにするミッション等を含むことができる。
【０１１５】
図８は、一実施例に係り、コマンドブロックを配置する方法を説明するフローチャートである。
【０１１６】
前述した段階Ｓ１０８で、コンピューティング装置は、前記一つ以上のコマンドブロックのうち少なくとも一部を前記仮想のロボットに配置する第３４段階（Ｓ１３４）を行う。
【０１１７】
一実施例において、コンピューティング装置は、ユーザ入力に基づいてコマンドブロックのうち少なくとも一部をコーディング教育のコンテンツから獲得されたポイントに配置するだけでなく、仮想のロボットにも配置することができる。即ち、ユーザからコマンドブロックに対するドラッグアンドドロップ入力を受信し、それによって仮想のロボットが配置された位置にコマンドブロックを配置し、仮想のロボットに複数のコマンドブロックが配置される場合、配置された順序に従ってコマンドブロックを整列することができる。コマンドブロックが配置される順序は、ユーザ入力によって変更され得る。
【０１１８】
例えば、仮想のロボットに配置されるコマンドブロックは、ポイントと関係なく仮想のロボットが行う動作であってもよく、仮想のロボットが各々の客体又はポイントを認識して動作するようにする仮想のセンサ装備を利用する動作を含むことができる。
【０１１９】
例えば、仮想のロボットに配置されるコマンドブロックは、仮想のロボットを直進するようにするコマンドと、障害物が認識される場合、一旦停止するようにするコマンドを含むことができる。
【０１２０】
前述した段階Ｓ１０９で、コンピューティング装置は、前記仮想のロボットに配置されたコマンドブロックに対応する命令を行う第３５段階（Ｓ１３５）を行う。
【０１２１】
また、コンピューティング装置は、前記一つ以上のポイントに到着する場合、前記到着したポイントに配置されたコマンドブロックに対応する命令を行う第３６段階（Ｓ１３６）を行う。
【０１２２】
例えば、仮想のロボットは、仮想のロボットに配置されたコマンドブロックによって基本的に直進を行い、障害物が認識される場合、一旦停止することができる。
【０１２３】
以降、該当障害物に対応するポイントに配置されたコマンドブロックによって、該当障害物を持ち上げたり、回避する動作を行うことができる。
【０１２４】
また、コンピューティング装置は、前記仮想のロボットに配置されたコマンドブロックに対応する命令と、前記到着したポイントに配置されたコマンドブロックに対応する命令とが衝突する場合、動作を停止してフィードバックを表示する第３７段階（Ｓ１３７）を行う。
【０１２５】
例えば、仮想のロボットに配置されたコマンドブロックが、障害物に出会う場合、障害物に衝突するようにする命令を含み、該当障害物に対応するポイントに配置されたコマンドブロックが、障害物を回避するようにする命令が含まれる場合、衝突が発生する。この場合、誤謬を防止するために、コンピューティング装置は仮想のロボットの動作を停止させて、フィードバックを表示することができる。
【０１２６】
また、実施例にかかり、コマンドブロックの優先順位が設定できる。例えば、仮想のロボットに配置されたコマンドブロックによる命令と各ポイントに配置されたコマンドブロックによる命令とが衝突する場合、仮想のロボットに配置されたコマンドブロックによる命令が優先するように、又はその逆になるように設定されることができる。
【０１２７】
また、命令の種類に応じて優先順位が異なって設定されることもあり（例えば、障害物に衝突する命令より回避する命令が優先し得る）、各コマンドブロック毎に優先順位が設定されていることもある。例えば、各コマンドブロックには順次に番号が与えられており、互いに異なるコマンドブロックが衝突することになる場合、より高い番号が与えられたコマンドブロックの命令に従うようにすることができる。
【０１２８】
一実施例において、段階Ｓ１３７によって、仮想のロボットの動作が停止され、フィードバックが表示される場合、ユーザの選択によって衝突するコマンドブロックのうち一つが選択され、選択されたコマンドブロックによって仮想のロボットが制御されることもできる。
【０１２９】
また、ユーザは仮想のロボットの動作が停止された場合、デバッギングを行い、コマンドブロックの配置を変更することもできる。
【０１３０】
図９は、一実施例に係るコンピューティング装置の構成図である。
【０１３１】
プロセッサ１０２は、一つ以上のコア（ｃｏｒｅ、図示せず）及びグラフィック処理部（図示せず）及び／又は他の構成要素と信号を送受信する連結通路（例えば、バス（ｂｕｓ）等）を含むことができる。
【０１３２】
一実施例に係るプロセッサ１０２は、メモリ１０４に格納された一つ以上のインストラクションを実行することによって、図１乃至図８に関して説明された方法を行う。
例えば、プロセッサ１０２は、メモリに格納された一つ以上のインストラクションを実行することによってコーディング教育のコンテンツを獲得する第１段階と、前記コーディング教育のコンテンツに含まれた一つ以上のポイントを選択する第２段階と、前記カメラから撮影された画像を獲得する第３段階と、前記撮影された画像を認識し、前記撮影された画像に含まれた一つ以上の客体と前記一つ以上のポイントとをマッチングする第４段階と、前記撮影された画像及び前記マッチングされた一つ以上のポイントを表示する第５段階と、前記撮影された画像に仮想のロボットを表示する第６段階と、前記仮想のロボットの動きを制御するための一つ以上のコマンドを各々含む一つ以上のコマンドブロックを表示する第７段階と、前記表示された一つ以上のコマンドブロックに対するユーザ入力に基づき、前記一つ以上のコマンドブロックを前記一つ以上のポイントに配置する第８段階と、前記一つ以上のコマンドブロックが配置された順序に従って前記仮想のロボットを制御し、前記仮想のロボットは、前記一つ以上のポイントに沿って移動し、各々のポイントに配置されたコマンドブロックに対応する命令を行う、第９段階と、前記制御結果による前記仮想のロボットの動きを表示する第１０段階と、を行う。
【０１３３】
一方、プロセッサ１０２は、プロセッサ１０２の内部で処理される信号（又は、データ）を一時的及び／又は永久的に格納するラム（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、図示せず）及びロム（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、図示せず）をさらに含むことができる。また、プロセッサ１０２は、グラフィック処理部、ラム、及びロムのうち少なくとも一つを含むシステムオンチップ（ＳｏＣ：ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ）の形態で実現されることができる。
【０１３４】
メモリ１０４にはプロセッサ１０２の処理及び制御のためのプログラム（一つ以上のインストラクション）を格納することができる。メモリ１０４に格納されたプログラムは、機能によって複数個のモジュールに区分されることができる。
【０１３５】
本発明の実施例に関して説明された方法又はアルゴリズムの段階は、ハードウェアで直接実現されたり、ハードウェアにより実行されるソフトウェアモジュールで実現されたり、又はこれらの結合により実現されることができる。ソフトウェアモジュールは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、ハードディスク、着脱型ディスク、ＣＤ−ＲＯＭ、又は本発明が属する技術分野でよく知られている任意の形態のコンピュータ読取可能記録媒体に常駐することもできる。
【０１３６】
本発明の構成要素は、ハードウェアであるコンピュータと結合されて実行されるために、プログラム（又はアプリケーション）で実現されて媒体に格納されることができる。本発明の構成要素は、ソフトウェアプログラミング又はソフトウェア要素で実行されることができ、これと同様に、実施例は、データ構造、プロセス、ルーチン又は他のプログラミングの構成の組み合わせで実現される様々なアルゴリズムを含み、Ｃ、Ｃ＋＋、ジャバ（Ｊａｖａ）、アセンブラー（ａｓｓｅｍｂｌｅｒ）等のようなプログラミング又はスクリプティング言語で実現されることができる。機能的な側面は、一つ以上のプロセッサで実行されるアルゴリズムで実現されることができる。
【０１３７】
以上、添付図を参照として本発明の実施例を説明したが、本発明が属する技術分野の通常の技術者は、本発明がその技術的思想や必須的な特徴を変更せずに、他の具体的な形態で実施されることができるということを理解できる。従って、以上で記述した実施例は、あらゆる面で例示的なものであり、制限的ではないものと理解すべきである。
【図１】
0006940204.tif 000002
【図２】
0006940204.tif 000003
【図３】
0006940204.tif 000004
【図４】
0006940204.tif 000005
【図５】
0006940204.tif 000006
【図６】
0006940204.tif 000007
【図７】
0006940204.tif 000008
【図８】
0006940204.tif 000009
【図９】
0006940204.tif 000010