(57)【要約】本発明は、スマートロボットに応用する、プリセット組み込み式システムでスクリプト操作を実現するシステムを提供する。上記のシステムは、スクリプトを解釈・執行する仮想マシンと、スクリプトタスクの保存・関連に用いる上記の仮想マシンの実例であるスレッドプールと、スレッドプールと上記の仮想マシンに接続され、受信した上記のスクリプトタスクに基づき上記の仮想マシンを実例化してから上記のスレッドプールに保存し、プリセット策略に基づき上記のスレッドプールにおけるスレッドを相応にスケジューリングする管理ユニットと、上記のスレッドプールに接続され、上記の管理ユニットのスケジューリングで中止されたスクリプトタスクに対応する上記のスレッドの識別情報を保存するグローバルテーブルと、上記の管理ユニットと上記のグローバルテーブルとに接続され、上記のグローバルテーブルにおいて現在のスクリプトタスクのマッチングする記録があるかを調べ、ある場合、上記の管理ユニットに通知し、上記の記録における相応のスレッドをスケジューリングして、執行する。グローバルテーブルロボットのインタラクティブにおけるコンテキスト問題点を解決する。【選択図】図１
2018504730.tif 000002
【特許請求の範囲】
【請求項１】
スマートロボットに応用して、プリセット組み込み式システムでスクリプト操作を実現するシステムにおいて、
スクリプトの解釈・執行に用いる仮想マシンと、
スクリプトタスクと関連する上記仮想マシンの実例を記憶するスレッドプールと、
上記スレッドプールと上記仮想マシンとに接続され、受信した上記スクリプトタスクに基づき、上記仮想マシンを実例化してから上記スクリプトを上記スレッドプールに保存し、かつプリセット策略に基づき上記スレッドプールにおけるスレッドを相応にスケジューリングする管理ユニットと、
上記スレッドプールに接続され、上記管理ユニットがスケジューリングすることにより中止されたスクリプトタスクに対応する上記スレッドの識別情報を記憶するグローバルテーブルと、
上記管理ユニットと上記グローバルテーブルとに接続され、上記グローバルテーブルに現在のスクリプトタスクのマッチングする記録があるかを調べ、当該記録がある場合、上記管理ユニットに通知して上記記録における相応のスレッドをスケジューリングして執行させる整合ユニットと、
を含むことを特徴とするシステム。
【請求項２】
上記スレッドプールに接続され、上記管理ユニットによるスケジューリングに基づき、上記スレッドプールにおける相応の上記スレッドを執行する執行ユニットをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項３】
受信したスクリプトタスクを執行するスクリプト運行ユニットと、
上記スクリプト運行ユニットと上記管理ユニットとに接続され、上記スクリプトタスクを上記管理ユニットに伝送するインタフェースユニットと、
をさらに含むことを特徴とする請求項１に記載のシステム。
【請求項４】
上記スクリプト運行ユニットと上記インタフェースユニットは、JAVA仮想マシンにおいて運行するJAVA原生インタフェース（native interface）から形成されることを特徴とする請求項３に記載のシステム。
【請求項５】
上記プリセット策略は、FIFO（first-in first-out）策略と、FILO（first-in last-out）策略とを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
上記グローバルテーブルは、ハッシュテーブルを採用することを特徴とする請求項１に記載のシステム。
【請求項７】
上記執行ユニットに接続され、上記執行ユニットが執行する上記スレッドのタスク情報と/或いは執行結果を読み取り、リモートサーバーに伝送する通信ユニットを含むことを特徴とする請求項２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信技術分野に関し、特にプリセット組み込み式システムでスクリプトオペレーションを実現するシステムに関するものである。
【背景技術】
【０００２】
ロボット応用領域の拡大及び電子技術の高速発展に伴い、人間生活におけるロボットの応用は次第に増えつつある。従来のロボットは、殆どプロセス向けのプログラミングアイデアでプログラミングする。プロセス向けとは、プロセスを中心とするプログラミングアイデアを指し、問題の解決に必要な段取りを分析し、関数によってこれらの段取りを実現し、使う時、順を追って一つ一つの段取りを使用する。
【０００３】
現在、アプリケーションプログラムは、既にコマンド・ライン・インタフェースからウィンドウ・インタフェースに成長した。アプリケーションプログラムは、プロセス向け（process oriented）に基づいて開発されたので、柔軟性不足及びメンテナンス困難などの問題点があり、従来の図形インタラクティブのように、ウィンドウの進みと戻りに限りがあり、しかも一定的である。プログラムが動いている時、コンテキスト関連性（context-dependent）があるので（コンテキスト関連性とはインタラクティブ時、ユーザーのオーダーにコンテキストがあるとのことである）、プログラマーは、大量の「if…else…」をプログラミングしてコンテキストを判断して、プログラムフローを変更する必要がある。それに、同様な対話モード（interactive mode）は、異なるコンテキストにおいて異なる結果に対応するかもしれない。従来のプログラミングアイデアを採用すれば、これらのコンテキストは大量のオブジェクトカップリングを引き起こし、オブジェクト向けプログラム設計（object-oriented programming）の優越性を壊す。それに、従来の組み込み式の開発プロセスが非常に長く、プログラミング終了後、編集・翻訳、配置、プログラミングなどの作業を実施してからこそ機能が検証できる。システムが複雑であれば、このプロセスは膨大な資金と時間がかかる。
【０００４】
以上の記載によると、特定任務（タスク）を実施する従来のプログラミング可能な多機能専用ロボットは、機能に限りがあり、柔軟性不足、且つメンテナンス難の問題点を抱え、日増しに増えつつある人々の需要を既に満たせない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の組み込み式開発プロセスには上記の問題点があるから、本発明は機能装置を直接に使用でき、高柔軟性、高独占性、且つ簡単にメンテナンスできるスマートロボットを提供する。
【課題を解決するための手段】
【０００６】
本発明の具体的な技術案は下記通りである。すなわち、本発明のスマートロボットに応用する、プリセット組み込み式システムで脚本オペレーションを実現するシステムにおいて、
スクリプトを解釈して、実行する仮想マシンと、
スクリプトタスクと関連する上記の仮想マシンの実例を記憶するスレッドプールと、
上記の仮想マシンと上記のスレッドプールに接続され、受信した上記のスクリプトタスクに基づき、上記の仮想マシンを実例化してから上記のスクリプトを上記のスレッドプールに保存し、プリセット策略に基づき上記のスレッドプールにおけるスレッドを相応にスケジューリングする管理ユニットと、
上記のスレッドプールに接続され、上記の管理ユニットのスケジューリングにより中止されたスクリプトタスクに対応する上記のスレッドの識別情報を記憶するグローバルテーブルと、
上記の管理ユニットと上記のグローバルテーブルとに接続され、上記のグローバルテーブルに現在のスクリプトタスクのマッチングする記録があるかを調べ、当該記録がある場合上記の管理ユニットに通知して上記の記録における相応のスレッドをスケジューリングして執行させる整合ユニットとを含む。
【０００７】
好ましいのは、また、上記のスレッドプールに接続され、上記の管理ユニットによるスケジューリングに基づき上記のスレッドプールにおける相応の上記のスレッドを執行する執行ユニットをさらに含む。
【０００８】
好ましいのは、また受信したスクリプトタスクを執行するスクリプト運行ユニットと、
上記のスクリプト運行ユニットと上記の管理ユニットに接続され、上記のスクリプトタスクを上記の管理ユニットに伝送するインタフェースユニットとを具備する。
【０００９】
好ましいのは、上記のスクリプト運行ユニットと上記のインタフェースユニットはJAVA（登録商標）仮想マシンで運行するJAVA（登録商標）原生インタフェースによって形成される。
【００１０】
好ましいのは、上記のプリセット策略にFIFO（first-in first-out）とFILO（first-in last-out）が含まれる。
【００１１】
好ましいのは、上記のグローバルテーブルとしてハッシュテーブルを採用する。
【００１２】
好ましいのは、上記の執行ユニットに接続され、上記の執行ユニットが執行する上記のスレッドのタスク情報と/或いは執行結果を読み取り、リモート・サーバーに伝送する通信ユニットをも含む。
【発明の効果】
【００１３】
上記技術案は下記有益効果を有する。
【００１４】
スレッドプールにより、複雑環境において、スマートロボットが緊急事態に対応する能力の完備性を向上させる。グローバルテーブルにより、ロボットのインタラクティブ時のコンテキスト問題点を解決し、ユーザーのコンテキスト軌跡（context trace）に基づき、相応の操作を執行する。管理ユニットによりロボットの独占的なハードウェアのメンテナンスが実施できる。さらにスクリプトタスク（script tasks）の執行の正確性を確保し、それに機能装置を直接的に呼び出し（Direct call）でき、柔軟性が強く、簡単にメンテナンスできる。
【図面の簡単な説明】
【００１５】
【図１】図1は、本発明のスマートロボットの実施例のモジュール図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施例の技術案を明確的で完全に説明する。以下に説明する実施例は、本発明の実施例の一部であり、全部の実施例ではない。本発明の実施例に基づき、当業者が創造的労働を実現しないまま獲得した全てのその他の実施例は、何れも本発明の保護範囲に含まれる。
【００１７】
説明しなければいけないのは、衝突しない限りに、本発明の実施例及び実施例の特徴は相互に組み合わせることができる。
【００１８】
以下、図面と具体的な実施例に基づき本発明をさらに説明するが、本発明を限定するものではない。
【００１９】
図１に示すように、本発明のスマートロボットに応用して、プリセット組み込み式システム(preset embedded system)でスクリプト操作（script operation）を実現するシステムにおいて、
スクリプト（script）を解釈・執行する仮想マシン7と、
スクリプトタスクと関連する仮想マシン７の実例を記憶するスレッドプール６と、
スレッドプール６と仮想マシン7とに接続し、仮想マシン７が受信したスクリプトタスクを実例化し、スレッドプール6に記憶し、プリセット策略（default strategies）に基づきスレッドプール6におけるスレッドを相応にスケジューリングする管理ユニット5と、
スレッドプール6に接続し、管理ユニット5のスケジューリングで中止されたスクリプトタスクが対応するスレッドの識別情報を保存するグローバルテーブル3と、
管理ユニット５とグローバルテーブル3とに接続し、上記のグローバルテーブル3には現在のスクリプトタスクのマッチングする記録があるかを調べ、ある場合上記の管理ユニット5に通知して記録における相応のスレッドをスケジューリングして執行させる整合ユニット2とを含む。
【００２０】
管理ユニット5は、一つのスクリプトタスクを受信した後、当該スクリプトタスクを実例化してスレッドプール6に保存し、プリセット策略に基づきスレッドプール6におけるスレッドを相応にスケジューリングする必要があり、以下のような状況がある。
【００２１】
すなわち、現在のスクリプトタスクの優先順位がスレッド6におけるその他のタスクより優先である場合、実行しているスクリプトタスクの対応するスレッドを中止し、当該スレッドの状態をスレッドプール6に保存する。また、当該スレッドの識別情報をグローバルテーブル3に保存すると同時に、管理ユニット５が中止されたスクリプトタスクを保存し、優先順位の大きいスレッドを執行する。
【００２２】
予定の時間間隔に管理ユニット5がプリセットシステム情報を受領するかどうかを判断し、プリセットシステム情報は、システムがプリセットする優先権のある若干のシステム情報である。当該システム情報の優先順位は、執行しているスレッドの優先順位より大きい。管理ユニット5がシステム情報を受領する時、執行しているスクリプトタスクの対応するスレッドを中止し、当該スレッドの状態をスレッドプール6に保存する。スレッドの識別情報をグローバルテーブル3に保存すると同時に、管理ユニット5が中止されるスクリプトタスクを保存し、システム情報を執行しなければいけない。
【００２３】
中止されたスクリプトタスクが再び管理ユニット5に届けられた後、整合ユニット２によって、グローバルテーブル3には現在のスクリプトタスクのマッチングする記録があるか否かを調べる。当該記録がある場合、管理ユニット５に通知し、記録における相応のスレッドをスケジューリングして、執行させる。即ち、中止された状態を回復させて引き続き執行する。
【００２４】
スマートロボットにおいてハードウェアに独占（exclusivity）の特徴があるので、管理ユニット5は、スマートロボットのハードウェア機能を維持することができるものである。例えば、機械構成のようなハードウェアは、複数のスクリプトタスクに同時に呼び出されることは許さない。こうした行為の発生を防ぐために、管理ユニット5は、プログラムフローの執行をスケジューリングする。管理ユニット５でスマートロボットの独占的なハードウェアを保全し、プログラム執行の正確性を確保することができる。
【００２５】
本実施例において、スレッドプール6によって、スマートロボットが複雑環境で突発的な状況に対応する完全性（completeness）を向上させ、グローバルテーブル３でロボットのインタラクティブ時のコンテキスト問題点を解決し、ユーザーのコンテキスト軌跡に基づき相応の操作を執行でき、管理ユニット５でロボットの独占的なハードウェアを保全でき、さらにスクリプトタスクの執行の正確性を確保し、且つ直接に機能ユニットを呼び出すことができる。
【００２６】
好ましい実施例は、また、スレッドプール6に接続し、管理ユニット5のスケジューリングに基づき、スレッドプール6における相応のスレッドを執行する執行ユニット8をも含む。
【００２７】
本実施例において、執行ユニット８は、管理ユニット5のスケジューリングにより、相応のスレッドを執行し、スクリプトタスクの執行の正確性（correctness）を確保できる。
【００２８】
好ましい実施例は、また、受信したスクリプトタスクを執行するスクリプト運行ユニット（script run unit）1と、
スクリプト運行ユニット1と管理ユニット5に接続し、スクリプトタスクを管理ユニット5に伝送するインタフェースユニット４とを含む。
【００２９】
好ましい実施例において、スクリプト運行ユニット1とインタフェースユニット４は、JAVA仮想マシン7で運行するJAVA原生インタフェース（Java（登録商標） Native Interface、JNI、JNI標準はJAVAプラットフォームの一部となり、JAVAコードとその他の言語のコードとのインタラクティブを許す）から形成する。
【００３０】
本実施例にいて、JAVAエンジンは、スクリプト運行ユニット１としてもよく、JAVA原生インタフェースによってスクリプトを運行させることができ、2進法をロードすることによりファイルを執行でき、スクリプトタスクを惰性読取して管理ユニット５に登録し、新しいシーンを作ることで、スクリプトタスクの執行フローを管理・整合する。
【００３１】
好ましい実施例において、プリセット策略にFIFOとFILOが含まれる。
【００３２】
本実施例におけるFIFO策略は、実は先入れ先出し（First-in First-service）である。例えば、列方式で配列する。FILO策略は先入れ後出し（First-in Last-service）である。例えば、積み載せ（heaped loads）の方式で配列する。スクリプトタスクはラベル設計によって保存・回復できる。スケジューリングする時、スクリプトタスクは、無条件でラベルにスキップしてプログラムフローを記憶して、操作を回復させる。こうすれば、スマートロボットの複雑環境での緊急状態に対応する完全性を上げることができる。
【００３３】
好ましい実施例において、グローバルテーブルとしてハッシュテーブルを採用する。
【００３４】
本実施例において、ハッシュテーブルは、データ構造で、ユーザーの運動軌跡を記録するものである。プログラムは、軌跡に基づき、最も近づくコンテキスト（most proximate context）を選択できる。中止された全てのスクリプトタスクの識別情報は、当該ハッシュテーブルに記録される。ユーザーが複数の機能に存在する関数を呼び出せれば、その呼び出しは、現在のハッシュテーブルの識別情報に基づき、どの機能における関数を呼び出すかを決める。
【００３５】
好ましい実施例においては、執行ユニット8に接続し、執行ユニット8がスレッドを執行するスクリプト情報と/或いは執行結果を読み取り、リモートサーバーに伝送し、これによって、現在のスレッドを執行した任務情報と/或いは執行結果をリモートサーバーにフィードバックする通信ユニットを含む。
【００３６】
本実施例において、スクリプトタスクは、スクリプトプログラミング言語によりプログラミングする。スクリプトプログラミング言語は、スタック仮想マシン７に基づく解釈型スクリプト言語であり、編集・翻訳せずに、インタープリターに解釈された後、ホットスポットコードに対して地元機械コード(native machine code)を生成してからスマートロボットの組み込操作システムを直接に運行できる。スクリプト言語は、チューリングが完全である（完全なチューリングとは、当該言語はチューリングマシンができる全てのことを完全に模擬することができ、現在全ての計算可能な問題を解決し、プログラミングアイデアで従来のプロセスソフト向けの開発技術と対象ソフト向けの開発技術に対応できる）（turing-complete programming language）。当該言語は、スマートロボットのインタラクティブ環境に用いられる時、機能向けの開発方式を採用する。機能向け(function-oriented)とは、言語内の基本ユニットが機能（functions）であることを意味する。これらの機能はお互いに独立する。これらの独立的な基礎機能ユニットを利用して具体的な複雑シーンを設計することができる。例えば、ユーザーはロボットの複数の不相関機能をランダムに使用することができる。これらの機能は、お互いに何の関連もない。例えば、ユーザーはロボットに音楽を流してもらい、その後ロボットに現時点の天気を報告させてもらうことができる。
【００３７】
現在、明かり付け、音楽を流し、言語インタラクティブ、映画放送、機械運動の機能があるスマートロボットを例とする。
【００３８】
ロボットの操作システムはアンドロイド（Android）スマート操作システムを採用する。スクリプト運行ユニット１は、スクリプトタスクとアンドロイドシステムとを関連付ける。管理ユニット５は、スクリプトタスク執行フローを管理・スケジューリングする。執行ユニット8、は管理ユニット5のスケジューリングに基づき、スレッドプール6における相応のスレッドを執行する。以下、コードは具体的なアプリケーションロジックの例を提供し、当該アプリケーションは音楽流しのロジックである。その中では、”//”は備考記号（annotation symbol）で、“//”後のデータはプログラムに現れない。
【００３９】
//start
enter(music,light) //音楽と明かりの機能に入る
on//音楽と明かりのコンテキストで、同時に音楽と明かりをオンし
while(1) {
var ret = waitForCmd //ユーザーの命令を待つ
ifend(ret) //当該アプリケーションを終了させるかを判断する
play (ret) //ユーザーに対して必要な音楽を流し、light機能における関数は同様に呼び出され、音楽とともにライトを変える。
【００４０】
}
<onPause>
Save //コンテキストを保存し、先ほどの音楽を覚える
Off //他のプログラムに中止され、一時に音楽と明かりをoffにする。
【００４１】
exit(music, light) //音楽と明かりの機能を終了させる
<onResume>
enter(music, light) //音楽と明かり機能に入る
resume //コンテキストを回復させ、先ほどの音楽を再びロードする
on //音楽を回復させる
【００４２】
本実施例ではスクリプトタスクを採用して、従来の高級言語で編集・翻訳、配置、プログラミングをする場合の時間かかるという問題点を解決した。スクリプトタスクのソースコードをスマートロボットのファイルシステムに入れた後、直接に運行して機能を検証することができる。スクリプトタスクによってシステムの機能を直接にプログラマーに見せ、アプリケーションプログラムの開発者の負担を減らし、スマートロボットのプログラムを開発する効率を上げる。いつでも変化するグローバルテーブル３により、インタラクティブにおけるコンテキスト問題点を解決する。プログラマーは、従来言語のように大量の「if…else…」をプログラミングしてコンテキストを判断してプログラムフローを変化することの代わりに、直接に機能ユニットを呼び出し、これらの機能の内部ではグローバルテーブル3に基づきどのプログラムフローを執行するかを判断する。簡単に操作できる。
【００４３】
本実施例をスマートロボットに応用すれば、ロボットは感知、思惟、効果が人間を完全に模擬する機械システムになった。本発明のシステムは、高効果なスマートシステムのみならず、人工知能の総合的体現でもある。
【００４４】
以上は本発明の好ましい実施例に過ぎなく、本発明の実施形態及び保護範囲を限定するものではない。当業者は、本発明の明細書及び図面内容の使用による等価交換及び明らかな変化による技術案が何れも本発明の保護範囲に含まれると意識しなければならない。
【図１】
2018504730.tif 000003
【国際調査報告】
2018504730.tif 000004
2018504730.tif 000005
2018504730.tif 000006
2018504730.tif 000007