(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025029556
(43)【公開日】2025-03-06
(54)【発明の名称】ロボット制御システム、ロボット、及びロボット制御方法
(51)【国際特許分類】
G08G 1/09 20060101AFI20250227BHJP
G05D 1/225 20240101ALI20250227BHJP
【FI】
G08G1/09 V
G05D1/225
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023211459
(22)【出願日】2023-12-14
(31)【優先権主張番号】10-2023-0109249
(32)【優先日】2023-08-21
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】591251636
【氏名又は名称】現代自動車株式会社
【氏名又は名称原語表記】HYUNDAI MOTOR COMPANY
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(71)【出願人】
【識別番号】500518050
【氏名又は名称】起亞株式会社
【氏名又は名称原語表記】KIA CORPORATION
【住所又は居所原語表記】12, Heolleung-ro, Seocho-gu, Seoul, Republic of Korea
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100127465
【弁理士】
【氏名又は名称】堀田 幸裕
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100130719
【弁理士】
【氏名又は名称】村越 卓
(72)【発明者】
【氏名】リュ、ジョンミン
(72)【発明者】
【氏名】キム、ジンウ
(72)【発明者】
【氏名】キム、ユンジェ
(72)【発明者】
【氏名】キム、ソクウォン
【テーマコード(参考)】
5H181
5H301
【Fターム(参考)】
5H181AA20
5H181AA27
5H181AA28
5H181BB04
5H181BB05
5H181BB08
5H181FF13
5H181LL01
5H181LL02
5H181LL04
5H181LL09
5H181MB01
5H301AA01
5H301BB05
5H301CC03
5H301CC06
5H301CC10
(57)【要約】 (修正有)
【課題】ロボットと管制クラウド間のネットワーク状態が不安定であったとしてもロボットに対する管制及び制御の問題を最小化できるロボット制御システム、ロボット、及びロボット制御方法を提供する。
【解決手段】本発明は、第1ワークフローエンジンを含むロボット、及びロボットとネットワークを介して連結され、第2ワークフローエンジンを含み、ロボットを制御する管制クラウドを含んでなり、ロボットは、第1状態において、管制クラウドから受信したタスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行し、第2状態において、管制クラウドから受信したシナリオを、前記第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行し、管制クラウドは、ロボットの状態及びネットワークの状態を判断して、ロボットに命令及びシナリオのうち少なくとも1つを伝送するロボット制御システムに関する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
第1ワークフロー(workflow)エンジンを含むロボット;及び
前記ロボットとネットワークを介して連結され、第2ワークフローエンジンを含み、前記ロボットを制御する管制クラウド
を含んでなり、
前記ロボットは、
第1状態において、前記管制クラウドから受信したタスク(task)グループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行し、
第2状態において、前記管制クラウドから受信したシナリオを、前記第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行し、
前記管制クラウドは、
前記ロボットの状態及び前記ネットワークの状態を判断して、前記ロボットに命令及びシナリオのうち少なくとも1つを伝送(transmit)する、
ロボット制御システム。
【請求項2】
前記管制クラウドは、
前記ロボットの状態が前記第1状態であるものと判断した場合、第1シナリオを前記第2ワークフローエンジンに適用して第1タスクグループを獲得し、
前記第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送する、
請求項1に記載のロボット制御システム。
【請求項3】
前記管制クラウドは、
前記ネットワークの状態に基づいて、前記第1シナリオと異なる第1例外シナリオを生成して、
前記第1例外シナリオを前記第2ワークフローエンジンに適用して、第1例外タスクグループを獲得し、
前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送し、
前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を遂行する前記ロボットの状態をモニタリングする、
請求項2に記載のロボット制御システム。
【請求項4】
前記管制クラウドは、
前記ロボットの状態が前記第2状態であるものと判断した場合、第2シナリオ及び第2例外シナリオを含む代表シナリオを生成して、
前記代表シナリオを前記ロボットに伝送する、
請求項1に記載のロボット制御システム。
【請求項5】
前記ロボットは、
前記管制クラウドから受信した前記代表シナリオのうち前記第2シナリオを、前記第1ワークフローエンジンに適用して、第2タスクグループを獲得し、
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で前記第2例外シナリオに関する例外状況が発生した場合、前記第2例外シナリオを前記第1ワークフローエンジンに適用して、第2例外タスクグループを獲得する、
請求項4に記載のロボット制御システム。
【請求項6】
前記ロボットは、
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送する、
請求項5に記載のロボット制御システム。
【請求項7】
前記管制クラウドは、
前記ロボットの状態が、前記第1状態及び前記第2状態のそれぞれと異なる第3状態であるものと判断した場合、第3シナリオを前記第2ワークフローエンジンに適用して、第3タスクグループを獲得し、
前記第3タスクグループに含まれた少なくとも1つ以上のタスクを、前記管制クラウドに含まれた第1チャンネルを介して前記ロボットに伝送する、
請求項1に記載のロボット制御システム。
【請求項8】
前記ロボットは、
前記第3状態において、前記管制クラウドから受信した前記第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行し、
前記ロボットの状態及び前記ネットワークの状態を前記管制クラウドに含まれた第2チャンネルに伝送する、
請求項7に記載のロボット制御システム。
【請求項9】
前記管制クラウドは、
前記ロボットから受信した前記ロボットの状態及び前記ネットワークの状態に基づいて、前記ロボットの状態が例外状態であるか決定(determine)し、
前記ロボットの状態が例外状態である場合、動作中止命令を前記第1チャンネルを介して前記ロボットに伝送し、
第3例外シナリオを前記第2ワークフローエンジンに適用して、第3例外タスクグループを獲得する、
請求項8に記載のロボット制御システム。
【請求項10】
前記第1状態は、
前記ロボットと前記管制クラウドのネットワークの連結状態がオンライン(online)に常に(always)保障される状態を含み、
前記第2状態は、
前記ロボットと前記管制クラウドのネットワークの連結状態がオンラインに常に保障できない状態を含む、
請求項1に記載のロボット制御システム。
【請求項11】
コンピュータで実行可能な命令語(computer-executable instructions)を格納したメモリ;
管制クラウドと通信を遂行する通信部;及び
前記メモリにアクセス(access)して前記命令語を実行する少なくとも1つ以上のプロセッサ
を含んでなり、
前記少なくとも1つ以上のプロセッサは、
第1状態において、前記管制クラウドから受信した第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行し、
第2状態において、前記管制クラウドから受信したシナリオをワークフローエンジンに適用して獲得された第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行し、
第3状態において、前記管制クラウドから受信した第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する、
ロボット。
【請求項12】
前記少なくとも1つ以上のプロセッサは、
前記第2状態において、前記管制クラウドから受信した前記シナリオのうち第2シナリオを、前記ワークフローエンジンに適用して、第2タスクグループを獲得し、
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で例外状況が発生した場合、前記シナリオのうち第2例外シナリオを、前記ワークフローエンジンに適用して、第2例外タスクグループを獲得する、
請求項11に記載のロボット。
【請求項13】
前記少なくとも1つ以上のプロセッサは、
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送する、
請求項12に記載のロボット。
【請求項14】
前記少なくとも1つ以上のプロセッサは、
前記ロボットの状態及び前記ロボットのネットワークの状態を、前記管制クラウドに伝送する、
請求項11に記載のロボット。
【請求項15】
前記第1状態は、
前記ロボットと前記管制クラウドのネットワークの連結状態がオンライン(online)に常に(always)保障される状態を含み、
前記第2状態は、
前記ロボットと前記管制クラウドのネットワークの連結状態がオンラインに常に保障できない状態を含む、
請求項11に記載のロボット。
【請求項16】
第1状態において、管制クラウドから受信したタスク(task)グループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行する動作;
第2状態において、前記管制クラウドから受信したシナリオを、第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行する動作;及び
ロボットの状態及びネットワークの状態を判断して、前記ロボットに命令及びシナリオのうち少なくとも1つを伝送(transmit)する動作
を含む、
ロボット制御方法。
【請求項17】
前記ロボットの状態が前記第1状態であるものと判断された場合、第1シナリオを前記管制クラウドに含まれた第2ワークフローエンジンに適用して第1タスクグループを獲得する動作;
前記第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送する動作;
前記ネットワークの状態に基づいて、前記第1シナリオと異なる第1例外シナリオを生成する動作;
前記第1例外シナリオを前記第2ワークフローエンジンに適用して、第1例外タスクグループを獲得する動作;
前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送する動作;及び
前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を遂行する前記ロボットの状態をモニタリングする動作
をさらに含む、
請求項16に記載のロボット制御方法。
【請求項18】
前記ロボットの状態が前記第2状態であるものと判断された場合、第2シナリオ及び第2例外シナリオを含む代表シナリオを生成する動作;
前記代表シナリオを前記ロボットに伝送する動作;
前記管制クラウドから受信された前記代表シナリオのうち前記第2シナリオを、前記第1ワークフローエンジンに適用して、第2タスクグループを獲得する動作;
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で前記第2例外シナリオに関する例外状況が発生した場合、前記第2例外シナリオを前記第1ワークフローエンジンに適用して、第2例外タスクグループを獲得する動作;及び
前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送する動作
をさらに含む、
請求項16に記載のロボット制御方法。
【請求項19】
前記ロボットの状態が、前記第1状態及び前記第2状態のそれぞれと異なる第3状態であるものと判断された場合、第3シナリオを前記管制クラウドに含まれた第2ワークフローエンジンに適用して、第3タスクグループを獲得する動作;
前記第3タスクグループに含まれた少なくとも1つ以上のタスクを、前記管制クラウドに含まれた第1チャンネルを介して前記ロボットに伝送する動作;
前記第3状態において、前記管制クラウドから受信した前記第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する動作;及び
前記ロボットの状態及び前記ネットワークの状態を前記管制クラウドに含まれた第2チャンネルに伝送する動作
をさらに含む、
請求項16に記載のロボット制御方法。
【請求項20】
前記ロボットから受信した前記ロボットの状態及び前記ネットワークの状態に基づいて、前記ロボットの状態が例外状態であるか決定(determine)する動作;
前記ロボットの状態が例外状態である場合、動作中止命令を前記第1チャンネルを介して前記ロボットに伝送する動作;及び
第3例外シナリオを前記第2ワークフローエンジンに適用して、第3例外タスクグループを獲得する動作
をさらに含む、
請求項19に記載のロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボット、及びロボット制御方法に関し、より詳細には、管制クラウドとロボットを互いに連動するための技術に関する。
【背景技術】
【0002】
自律走行基盤のサービスロボットは、無線ネットワークのインフラ状況に応じて信号強度が到達することができず、オフライン状態になることがある。この際の対処法として、ロボットのサービス種類によって多様な保障範囲のシナリオを有する必要がある。
【0003】
例えば、配送サービスロボットの場合、ISP(Internet Service Provider)業社が提供する5G又はLTE網を主に用いるが、エレベータ内部のように一部の陰影地域が存在する状況において、配送サービスロボットは、オフライン状態で目的地までの配送が可能でなければならない。また、スマートファクトリー(Smart Factory)の巡察ロボットの場合、オフライン状況において他の走行ロボットとの衝突を回避するため、停止状態で待機したり安全な場所に移動しなければならないオフラインシナリオが必要である。
【0004】
既存のロボット制御システムでは、ロボットのシナリオエンジンを外部管制クラウドで管理するので、オフライン時の動作が不可能であるか、又はロボットに内蔵されて実時間で状態を把握したり制御したりすることが困難である。
【0005】
そのため、このような問題点を解決するため、ワークフローエンジンを管制クラウドとロボットに搭載して互いに連動するための技術の開発が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の実施形態は、ワークフローエンジンを管制クラウドとロボットに同時に搭載することにより、ロボットと管制クラウド間のネットワーク状態が不安定であったとしてもロボットに対する管制及び制御の問題(issue)を最小化できるロボット制御システム、ロボット、及びロボット制御方法の提供を図る。
【0007】
また、本発明の実施形態は、第1状態において、タスクグループに含まれたタスクそれぞれの命令に関する動作を遂行することにより、ロボットが動作を遂行する状況が例外状況であったとしても実時間でタスク指示を変更することができるロボット制御システム、ロボット、及びロボット制御方法の提供を図る。
【0008】
また、本発明の実施形態は、第2状態において、シナリオをワークフローエンジンに適用してタスクに関する動作を遂行することにより、ロボットと管制クラウド間の直接的な通信頻度が減り、ロボットの制御を容易に遂行することができ、クラウド通信費用(トラフィック)を減らすことができるロボット制御システム、ロボット、及びロボット制御方法の提供を図る。
【0009】
また、本発明の実施形態は、第3状態において、タスクグループに含まれたタスクそれぞれの命令に関する動作を遂行することにより、ロボットのサービス種類(例:配送サービス、パトロールサービス)またはロボットが動作(例:サービス)を遂行する地域及び/又は環境に応じて、同一の管制クラウドとロボット構造に基づいてシナリオの変更だけでタスクを処理することができて開発費用を減らすことができるロボット制御システム、ロボット、及びロボット制御方法の提供を図る。
【0010】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は、下記の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【0011】
本発明の実施形態によるロボット制御システムは、第1ワークフロー(workflow)エンジンを含むロボット;及び、前記ロボットとネットワークを介して連結され、第2ワークフローエンジンを含み、前記ロボットを制御する管制クラウドを含んでなり、前記ロボットは、第1状態において、前記管制クラウドから受信したタスク(task)グループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行し、第2状態において、前記管制クラウドから受信したシナリオを、前記第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行し、前記管制クラウドは、前記ロボットの状態及び前記ネットワークの状態を判断して、前記ロボットに命令及びシナリオのうち少なくとも1つを伝送(transmit)することができる。
【0012】
一実施形態において、前記管制クラウドは、前記ロボットの状態が前記第1状態であるものと判断した場合、第1シナリオを前記第2ワークフローエンジンに適用して第1タスクグループを獲得し、前記第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送することができる。
【0013】
一実施形態において、前記管制クラウドは、前記ネットワークの状態に基づいて、前記第1シナリオと異なる第1例外シナリオを生成して、前記第1例外シナリオを前記第2ワークフローエンジンに適用して、第1例外タスクグループを獲得し、前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送し、前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を遂行する前記ロボットの状態をモニタリングすることができる。
【0014】
一実施形態において、前記管制クラウドは、前記ロボットの状態が前記第2状態であるものと判断した場合、第2シナリオ及び第2例外シナリオを含む代表シナリオを生成して、前記代表シナリオを前記ロボットに伝送することができる。
【0015】
一実施形態において、前記ロボットは、前記管制クラウドから受信した前記代表シナリオのうち前記第2シナリオを、前記第1ワークフローエンジンに適用して、第2タスクグループを獲得し、前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で前記第2例外シナリオに関する例外状況が発生した場合、前記第2例外シナリオを前記第1ワークフローエンジンに適用して、第2例外タスクグループを獲得することができる。
【0016】
一実施形態において、前記ロボットは、前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送することができる。
【0017】
一実施形態において、前記管制クラウドは、前記ロボットの状態が、前記第1状態及び前記第2状態のそれぞれと異なる第3状態であるものと判断した場合、第3シナリオを前記第2ワークフローエンジンに適用して、第3タスクグループを獲得し、前記第3タスクグループに含まれた少なくとも1つ以上のタスクを、前記管制クラウドに含まれた第1チャンネルを介して前記ロボットに伝送することができる。
【0018】
一実施形態において、前記ロボットは、前記第3状態において、前記管制クラウドから受信した前記第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行し、前記ロボットの状態及び前記ネットワークの状態を前記管制クラウドに含まれた第2チャンネルに伝送することができる。
【0019】
一実施形態において、前記管制クラウドは、前記ロボットから受信した前記ロボットの状態及び前記ネットワークの状態に基づいて、前記ロボットの状態が例外状態であるか決定(determine)し、前記ロボットの状態が例外状態である場合、動作中止命令を前記第1チャンネルを介して前記ロボットに伝送し、第3例外シナリオを前記第2ワークフローエンジンに適用して、第3例外タスクグループを獲得することができる。
【0020】
一実施形態において、前記第1状態は、前記ロボットと前記管制クラウドのネットワークの連結状態がオンライン(online)に常に(always)保障される状態を含み、前記第2状態は、前記ロボットと前記管制クラウドのネットワークの連結状態がオンラインに常に保障できない状態を含むことができる。
【0021】
本発明の実施形態によるロボットは、コンピュータで実行可能な命令語(computer-executable instructions)を格納したメモリ;管制クラウドと通信を遂行する通信部;及び、前記メモリにアクセス(access)して前記命令語を実行する少なくとも1つ以上のプロセッサを含み、前記少なくとも1つ以上のプロセッサは、第1状態において、前記管制クラウドから受信した第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行し、第2状態において、前記管制クラウドから受信したシナリオをワークフローエンジンに適用して獲得された第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行し、第3状態において、前記管制クラウドから受信した第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行することができる。
【0022】
一実施形態において、前記少なくとも1つ以上のプロセッサは、前記第2状態において、前記管制クラウドから受信した前記シナリオのうち第2シナリオを、前記ワークフローエンジンに適用して、第2タスクグループを獲得し、前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で例外状況が発生した場合、前記シナリオのうち第2例外シナリオを、前記ワークフローエンジンに適用して、第2例外タスクグループを獲得することができる。
【0023】
一実施形態において、前記少なくとも1つ以上のプロセッサは、前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送することができる。
【0024】
一実施形態において、前記少なくとも1つ以上のプロセッサは、前記ロボットの状態及び前記ロボットのネットワークの状態を、前記管制クラウドに伝送することができる。
【0025】
一実施形態において、前記第1状態は、前記ロボットと前記管制クラウドのネットワークの連結状態がオンライン(online)に常に(always)保障される状態を含み、前記第2状態は、前記ロボットと前記管制クラウドのネットワークの連結状態がオンラインに常に保障できない状態を含むことができる。
【0026】
本発明の実施形態によるロボット制御方法は、第1状態において、管制クラウドから受信したタスク(task)グループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行する動作;第2状態において、前記管制クラウドから受信したシナリオを、第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行する動作;及び、ロボットの状態及びネットワークの状態を判断して、前記ロボットに命令及びシナリオのうち少なくとも1つを伝送(transmit)する動作を含むことができる。
【0027】
一実施形態において、ロボット制御方法は、前記ロボットの状態が前記第1状態であるものと判断された場合、第1シナリオを前記管制クラウドに含まれた第2ワークフローエンジンに適用して第1タスクグループを獲得する動作;前記第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送する動作;前記ネットワークの状態に基づいて、前記第1シナリオと異なる第1例外シナリオを生成する動作;前記第1例外シナリオを前記第2ワークフローエンジンに適用して、第1例外タスクグループを獲得する動作;前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を前記ロボットに伝送する動作;及び、前記第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を遂行する前記ロボットの状態をモニタリングする動作をさらに含むことができる。
【0028】
一実施形態において、ロボット制御方法は、前記ロボットの状態が前記第2状態であるものと判断された場合、第2シナリオ及び第2例外シナリオを含む代表シナリオを生成する動作;前記代表シナリオを前記ロボットに伝送する動作;前記管制クラウドから受信された前記代表シナリオのうち前記第2シナリオを、前記第1ワークフローエンジンに適用して、第2タスクグループを獲得する動作;前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する中で前記第2例外シナリオに関する例外状況が発生した場合、前記第2例外シナリオを前記第1ワークフローエンジンに適用して、第2例外タスクグループを獲得する動作;及び、前記第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、前記管制クラウドに前記第2タスクグループに含まれた少なくとも1つ以上のタスク及び前記第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を伝送する動作をさらに含むことができる。
【0029】
一実施形態において、ロボット制御方法は、前記ロボットの状態が、前記第1状態及び前記第2状態のそれぞれと異なる第3状態であるものと判断された場合、第3シナリオを前記管制クラウドに含まれた第2ワークフローエンジンに適用して、第3タスクグループを獲得する動作;前記第3タスクグループに含まれた少なくとも1つ以上のタスクを、前記管制クラウドに含まれた第1チャンネルを介して前記ロボットに伝送する動作;前記第3状態において、前記管制クラウドから受信した前記第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行する動作;及び、前記ロボットの状態及び前記ネットワークの状態を前記管制クラウドに含まれた第2チャンネルに伝送する動作をさらに含むことができる。
【0030】
一実施形態において、ロボット制御方法は、前記ロボットから受信した前記ロボットの状態及び前記ネットワークの状態に基づいて、前記ロボットの状態が例外状態であるか決定(determine)する動作;前記ロボットの状態が例外状態である場合、動作中止命令を前記第1チャンネルを介して前記ロボットに伝送する動作;及び、第3例外シナリオを前記第2ワークフローエンジンに適用して、第3例外タスクグループを獲得する動作をさらに含むことができる。
【発明の効果】
【0031】
本発明によるロボット制御システム、ロボット、及びロボット制御方法の効果に対して説明する。
【0032】
本発明の実施形態のうち少なくとも1つによると、ワークフローエンジンを管制クラウドとロボットに同時に搭載することにより、ロボットと管制クラウド間のネットワーク状態が不安定であったとしてもロボットに対する管制及び制御の問題(issue)を最小化することができるという効果を有することができる。
【0033】
また、本発明の実施形態のうち少なくとも1つによると、第1状態において、タスクグループに含まれたタスクそれぞれの命令に関する動作を遂行することにより、ロボットが動作を遂行する状況が例外状況であったとしても実時間でタスク指示を変更することができるという効果を有することができる。
【0034】
また、本発明の実施形態のうち少なくとも1つによると、第2状態において、シナリオをワークフローエンジンに適用してタスクに関する動作を遂行することにより、ロボットと管制クラウド間の直接的な通信頻度が減り、ロボットの制御を容易に遂行することができ、クラウド通信費用(トラフィック)を減らすことができるという効果を有することができる。
【0035】
また、本発明の実施形態のうち少なくとも1つによると、第3状態において、タスクグループに含まれたタスクそれぞれの命令に関する動作を遂行することにより、ロボットのサービス種類(例:配送サービス、パトロールサービス)またはロボット動作(例:サービス)を遂行する地域及び/又は環境に応じて、同一の管制クラウドとロボット構造に基づいてシナリオの変更だけでタスクを処理することができて開発費用を減らすことができるという効果を有することができる。
【0036】
その他、本文書を介して直接的または間接的に把握される多様な効果が提供され得る。
【図面の簡単な説明】
【0037】
【
図1】本発明の一実施形態によるロボット制御システムを示した図である。
【
図2】本発明の一実施形態によるロボット制御方法を説明するためのフローチャートである。
【
図3】本発明の一実施形態によるロボット制御システムにおいて、管制クラウドとロボットを示した図である。
【
図4】本発明の一実施形態によるロボット制御システムにおいて、第1状態でロボットを制御する方法を説明するためのフローチャートである。
【
図5】本発明の一実施形態によるロボット制御システムにおいて、第2状態でロボットを制御する方法を説明するためのフローチャートである。
【
図6】本発明の一実施形態によるロボット制御システムにおいて、第3状態でロボットを制御する方法を説明するためのフローチャートである。
【
図7a】本発明の一実施形態によるロボット制御システムにおいて、第3状態でタスクを交替する方法を説明するためのフローチャートである。
【
図7b】本発明の一実施形態によるロボット制御システムにおいて、第3状態でタスクを交替する方法を説明するためのフローチャートである。
【
図7c】本発明の一実施形態によるロボット制御システムにおいて、第3状態でタスクを交替する方法を説明するためのフローチャートである。
【
図8】本発明の一実施形態によるロボット制御システムにおいて、タスクを処理する方法を説明するためのフローチャートである。
【
図9】本発明の一実施形態によるロボット制御システム又はロボット制御方法に関するコンピュータシステムを示した図である。
【0038】
図の説明と関連し、同一又は類似の構成要素に対しては同一又は類似の参照符号が使用され得る。
【発明を実施するための形態】
【0039】
以下、本発明の一部の実施形態を例示的な図を介して詳細に説明する。各図の構成要素に参照符号を付加するに当たって、同一の構成要素に対しては、たとえ他の図上に表示されるとしても、できる限り同一の符号を有するようにしていることに留意しなければならない。また、本発明の実施形態を説明するにおいて、関連する公知の構成又は機能に対する具体的な説明が本発明の実施形態に対する理解を妨害すると判断される場合は、その詳細な説明は省略する。特に、本文書の多様な実施形態が図を参照して記載される。しかし、これは本文書に記載された技術を特定の実施形態に対して限定しようとするものではなく、本文書の実施形態の多様な変更(modifications)、均等物(equivalents)、及び/又は代替物(alternatives)を含むものとして理解されなければならない。図面の説明に関して、類似の構成要素に対しては類似の参照符号が用いられてよい。
【0040】
本発明の実施形態の構成要素を説明するにおいて、第1、第2、A、B、(a)、(b)などの用語を使用することができる。このような用語は、その構成要素を他の構成要素と区別するためのものに過ぎず、その用語により当該構成要素の本質や順番または順序などが限定されない。また、異なって定義されない限り、技術的又は科学的な用語を含めてここで用いられる全ての用語は、本発明の属する技術分野において通常の知識を有する者により一般的に理解されるものと同じ意味を有する。一般的に用いられる辞書に定義されているもののような用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈されなければならず、本出願で明白に定義しない限り、理想的や過度に形式的な意味と解釈されない。例えば、本文書で用いられた「第1」、「第2」、「第一」又は「第二」などの表現は、多様な構成要素を、順序及び/又は重要度に関係なく修飾することができ、ある構成要素を他の構成要素と区分するために用いられるだけで、当該構成要素を限定しない。例えば、第1使用者機器と第2使用者機器は、順序又は重要度と関係なく、互いに異なる使用者機器を示すことができる。例えば、本文書に記載された権利範囲を逸脱することなく第1構成要素は第2構成要素と命名されてよく、類似に第2構成要素も第1構成要素と変えて命名されてよい。
【0041】
本文書において、「有する」、「有することができる」、「含む」又は「含むことができる」などの表現は、当該特徴(例:数値、機能、動作、又は部品などの構成要素)の存在を示し、追加的な特徴の存在を排除しない。
【0042】
ある構成要素(例:第1構成要素)が他の構成要素(例:第2構成要素)に「(機能的又は通信的に)連結されて((operatively or communicatively)coupled with/to)」いるか「接続されて(connected to)」いると言及された際には、前記ある構成要素が前記他の構成要素に直接的に連結されるか、他の構成要素(例:第3構成要素)を介して連結され得ると理解されるべきである。一方、ある構成要素(例:第1構成要素)が他の構成要素(例:第2構成要素)に「直接連結されて」いるか「直接接続されて」いると言及された際には、前記ある構成要素と前記他の構成要素との間に他の構成要素(例:第3構成要素)が存在しないものと理解されてよい。
【0043】
本文書で用いられた表現「~するように構成された(または設定された)(configured to)」は、状況に応じて、例えば、「~に好適な(suitable for)」、「~する能力を有する(having the capacity to)」、「~するように設計された(designed to)」、「~するように変更された(adapted to)」、「~させられた(made to)」、又は「~ができる(capable of)」に変えて用いられてよい。
【0044】
用語「~するように構成された(または設定された)」は、ハードウェア的に「特別に設計された(specifically designed to)」ことだけを必ずしも意味しないこともある。その代わり、ある状況では、「~するように構成された装置」という表現は、その装置が他の装置または部品とともに「~できる」ことを意味し得る。例えば、語句「A、B、及びCを遂行するように構成された(または設定された)プロセッサ」は、当該動作を遂行するための専用プロセッサ(例:エンベデッドプロセッサ)、又は、メモリ装置に格納された1つ以上のソフトウェアプログラムを実行することにより、当該動作を遂行することができる汎用プロセッサ(generic-purpose processor)(例:CPU又はapplication processor)を意味し得る。本文書で用いられた用語は、単に特定の実施形態を説明するために用いられたものであって、他の実施形態の範囲を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なって意味しない限り、複数の表現を含むことができる。技術的又は科学的な用語を含めてここで用いられる用語は、本文書に記載された技術分野において通常の知識を有する者によって一般的に理解されるものと同一の意味を有することができる。本文書に用いられた用語のうち、一般的な辞書に定義された用語は、関連技術の文脈上有する意味と同一又は類似の意味に解釈されてよく、本文書で明らかに定義されない限り、理想的や過度に形式的な意味に解釈されない。場合によって、本文書で定義された用語であっても本文書の実施形態を排除するように解釈できない。
【0045】
本文書において、「A又はB」、「A又は/及びBのうち少なくとも1つ」、又は「A又は/及びBのうち1つ又はそれ以上」などの表現は、共に羅列された項目の全ての可能な組み合わせを含むことができる。例えば、「A又はB」、「A及びBのうち少なくとも1つ」、又は「A又はBのうち少なくとも1つ」は、(1)少なくとも1つのAを含む、(2)少なくとも1つのBを含む、又は(3)少なくとも1つのA及び少なくとも1つのBの全てを含む場合を全て称することができる。また、本発明の実施形態の構成要素を説明するにおいて、「A又はB」、「A及びBのうち少なくとも1つ」、「A又はBのうち少なくとも1つ」、「A、B又はC」、「A、B及びCのうち少なくとも1つ」、「A、B、又はCのうち少なくとも1つ」、及び「A、B、C、又はこれらの何れかの組み合わせ中の少なくとも1つ」のような語句のそれぞれは、その語句のうち該当する語句に共に羅列された項目中の何れか1つ、又はそれらの全ての可能な組み合わせを含むことができる。特に、「A、B、C、又はこれらの何れかの組み合わせ中の少なくとも1つ」のような語句は、A又はB又はC又はこれらの組み合わせであるAB又はABCなどを含むことができる。
【0046】
以下、
図1から
図9を参照しつつ、本発明の実施形態を具体的に説明する。
【0047】
図1は、本発明の一実施形態によるロボット制御システムを示した図である。
【0048】
一実施形態によるロボット制御システムは、ロボット100及び管制クラウド140を含むことができる。
【0049】
一実施形態によるロボット100は、プロセッサ110、命令語122を含むメモリ120、及び通信部130を含むことができる。例えば、ロボット100は、第1ワークフロー(workflow)エンジンを含むことができる。
【0050】
例えば、ワークフローエンジン(例:第1ワークフローエンジン及び第2ワークフローエンジン)は、ビジネスプロセスの自動化と実行を支援するソフトウェアコンポネントを示すことができる。ワークフローエンジンは、プロセスを定義して実行するための機能を提供し、プロセスの流れを管理して制御することができる。ワークフローエンジンは、シナリオを入力とし、入力されたシナリオに関するタスクグループ(task group)を出力することができる。
【0051】
例えば、シナリオは、複数のタスク(task)、タスク間の分岐(branch)点、タスクと分岐の連結(connection)、及び例外(例:エラーまたは満了時間など)の処理のためのイベント(event)を含むことができる。ここで、タスクは、シナリオの単位作業であって、予め決定されたロボットの動作セット(set)を示すことができる。また、ロボット100は、タスクに関する動作を遂行し、分岐点に含まれた情報に基づいてその次の動作を遂行することができる。
【0052】
ロボット100は、第1状態において、管制クラウド140から受信したタスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行することができる。また、ロボット100は、第2状態において、管制クラウド140から受信したシナリオを、第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行することができる。さらに、ロボット100は、第3状態において、管制クラウド140から受信した少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行することができる。ロボット100が第1状態、第2状態、及び第3状態のそれぞれにおいて動作を遂行する詳細な方法は、以下の
図4から
図6で詳細に後述される。
【0053】
例えば、第1状態は、ロボット100と管制クラウド140のネットワークの連結状態がオンライン(online)に常に(always)保障される状態を含むことができる。つまり、第1状態は、ロボット100が命令あるいはタスクに関する動作を遂行する環境が主に(mainly)オンライン状態であることを含むことができる。第2状態は、ロボット100と管制クラウド140のネットワークの連結状態がオンラインに常に保障できない状態を含むことができる。つまり、第2状態は、ロボット100が命令あるいはタスクに関する動作を遂行する環境が主にオフライン状態であることを含むことができる。最後に、第3状態は、ロボット100と管制クラウド140のネットワークの連結状態がオンライン状態を前提として、例外的な状況において一部オフライン状態を含むことができる。第1状態から第3状態に関する詳細な説明は、ロボット100が第1状態、第2状態、及び第3状態のそれぞれにおいて動作を遂行するところのように、以下の
図4から
図6で詳細に後述される。
【0054】
プロセッサ110は、ソフトウェアを実行することができ、プロセッサ110に連結された少なくとも1つの他の構成要素(例:ハードウェア又はソフトウェア構成要素)を制御することができる。プロセッサ110は、それ以外にも多様なデータ処理又は演算を遂行することができる。例えば、プロセッサ110は、タスク、シナリオ、及び命令をメモリ120に格納することができる。
【0055】
参考として、プロセッサ110は、ロボット100が遂行する全ての動作を遂行することができる。そのため、本明細書では、説明の便宜のために、ロボット100の遂行する動作は、プロセッサ110が遂行する動作であることを主に説明する。また、本明細書では、説明の便宜のために、プロセッサ110は1つのプロセッサであるものと主に説明されるが、これに制限されない。例えば、ロボット100は、少なくとも1つ以上のプロセッサを含むことができる。少なくとも1つ以上のプロセッサのそれぞれは、タスク、シナリオ、及び命令に関する動作に係わる全ての動作を遂行することができる。
【0056】
メモリ120は、ロボット100を制御するために要求される多様なデータ及び/又は情報を臨時的に及び/又は永久的に格納することができる。例えば、メモリ120は、タスク、シナリオ、及び命令を格納することができる。
【0057】
通信部130は、ロボット100と管制クラウド140間の通信遂行を支援することができる。例えば、通信部130は、ロボット100と管制クラウド140間を通信させる1つ以上の構成要素を含むことができる。例えば、通信部130は、近距離通信部(Short range wireless communication unit)、マイクロフォンなどを含むことができる。このとき、近距離通信技術には、無線ラン(Wi-Fi)、ブルートゥース(登録商標)、ZigBee、WFD(Wi-Fi Direct)、UWB(ultra-wideband)、赤外線通信(IrDA、infrared Data Association)、BLE(Bluetooth Low Energy)、NFC(Near Field Communication)などがあり得るが、これらに制限されるものではない。
【0058】
管制クラウド140は、ロボット100とネットワークを介して連結され、第2ワークフローエンジンを含み、ロボット100を制御するクラウドを示すことができる。例えば、管制クラウド140は、ロボット100の状態及びネットワークの状態(例:ロボット100と管制クラウド140の連結)を判断し、ロボット100に命令及びシナリオのうち少なくとも1つを伝送(transmit)することができる。ロボット制御システムに含まれたロボット100と管制クラウド140に関する詳細な説明は、以下の
図3で後述される。
【0059】
図2は、本発明の一実施形態によるロボット制御方法を説明するためのフローチャートである。
【0060】
段階(S210)において、ロボット(例:
図1のロボット100)は、第1状態において、管制クラウド(例:
図1の管制クラウド140)から受信した複数のタスクそれぞれの命令に関する動作を遂行することができる。例えば、ロボットは、第1状態において、管制クラウド駆動方式で動作を遂行することができる。すなわち、ロボットは、第1状態において(すなわち、管制クラウドとネットワークの連結状態がオンラインに保障を受ける状態)、管制クラウドから複数のタスクそれぞれの命令のみを受信することにより、命令に関する動作を遂行することができる。
【0061】
管制クラウドは、ロボットの状態を判断し、判断結果(すなわち、ロボットの状態が第1状態である結果)に基づいて、第1シナリオを第2ワークフローエンジンに適用して第1タスクグループを獲得することができる。管制クラウドは、獲得された第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を、ロボットに伝送することができる。ロボットは、管制クラウドで処理された(processed)シナリオの結果物である少なくとも1つ以上のタスクそれぞれの命令のみを受信することにより、命令に関する動作を遂行することができる。
【0062】
ロボット制御システムは、ロボットの状態が第1状態である場合、管制クラウド駆動方式で、シナリオの即時修正及び実時間反映を行うことができ、ロボットを制御するための維持補修が便利であり、実時間でロボットをモニタリングしながら予想できなかった問題(例:例外状況)に対応することができる。
【0063】
段階(S220)において、ロボットは、第2状態において、管制クラウドから受信したシナリオを、第1ワークフローエンジンに適用して獲得されたタスクに関する動作を遂行することができる。例えば、ロボットは、第2状態において、ロボット駆動方式で動作を遂行することができる。すなわち、ロボットは、第2状態において(すなわち、管制クラウドとネットワークの連結状態がオンラインに保障を受けることができない状態)、管制クラウドからシナリオを受信することにより、タスクに関する動作を遂行することができる。
【0064】
管制クラウドは、ロボットの状態を判断し、判断結果(すなわち、ロボットの状態が第2状態である結果)に基づいて、第2シナリオをロボットに伝送することができる。ロボットは、受信された第2シナリオを第1ワークフローエンジンに適用して第2タスクグループを獲得することができる。ロボットは、獲得した第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行することができる。
【0065】
ロボット制御システムは、ロボットの状態が第2状態である場合、ロボット駆動方式で、オフライン及びネットワークが不安定な環境においてもロボット動作の保障範囲を拡大することができる。
【0066】
段階(S230)において、管制クラウドは、ロボットの状態及びネットワーク状態を判断して、ロボットに命令及びシナリオのうち少なくとも1つを伝送することができる。例えば、管制クラウドは、ロボットの状態が第1状態である場合、ロボットに命令を伝送することができる。また、管制クラウドは、ロボットの状態が第2状態である場合、ロボットにシナリオを伝送することができる。但し、管制クラウドがロボットに伝送する対象及び条件は、これに制限されるものではない。例えば、管制クラウドは、ロボットの状態が第1状態である場合、ロボットにシナリオを伝送することができ、管制クラウドは、ロボットの状態が第2状態である場合、ロボットに命令を伝送することができる。そのため、本明細書では、説明の便宜のために、管制クラウドは、ロボットの状態が第1状態である場合、ロボットに命令を伝送することができ、管制クラウドは、ロボットの状態が第2状態である場合、ロボットにシナリオを伝送することができるものとして主に説明される。
【0067】
図3は、本発明の一実施形態によるロボット制御システムにおいて、管制クラウドとロボットを示した図である。
【0068】
一実施形態によるロボット制御システムは、ロボット301と管制クラウド311を含むことができる。
【0069】
ロボット301は、ロボットエージェント303、データベース305、及び第1ワークフローエンジン307を含むことができる。ロボットエージェント303は、ロボット301を代表して管制クラウド311から受信した命令、タスク、又はシナリオを第1ワークフローエンジン307に適用することができる。
【0070】
具体的に、ロボットエージェント303は、管制クラウド311の管制サーバ313から第1チャンネル(例:
図3においてRSocketとして示される)を介してタスクなどを受信することができる。
【0071】
ロボットエージェント303は、管制サーバ313から第1チャンネルを介してシナリオを受信した場合、受信されたシナリオを第1ワークフローエンジン307に適用してタスクグループを獲得することができる。タスクグループは、受信されたシナリオに関する少なくとも1つ以上のタスクを含むことができる。
【0072】
ロボットエージェント303は、獲得されたタスクグループをデータベース305に格納することができる。また、ロボットエージェント303は、第2チャンネル(例:
図3においてKafkaとして示される)及びPub/Sub(Publish/Subscribe)機能を介してシナリオ進行中の状態(status)のデータを伝送するか、又は受信することができる。
【0073】
管制クラウド311は、管制サーバ313、データベース315、及び第2ワークフローエンジン317を含むことができる。例えば、管制サーバ313は、ロボット301のロボットエージェント303と類似に、管制クラウド311を代表してシナリオを第2ワークフローエンジン317に適用することができる。
【0074】
具体的に、管制サーバ313は、第1チャンネルを介して、シナリオ(例:第1シナリオから第3シナリオ)、タスクグループ(例:第1タスクグループから第3タスクグループ)、命令、又はこれらの組み合わせのうち少なくとも1つ以上をロボット301に伝送することができる。
【0075】
参考として、第1ワークフローエンジン307は、第2ワークフローエンジン317と同一のバージョンのBPMN(Business Process Model and Notation)基盤のワークフローエンジンであってよい。例えば、BPMNは、ビジネスプロセスをモデリングして表現するための標準化されたグラフィック表記法であってよい。BPMNは、業務プロセスを多様な利害関係者と共有して理解しやすく表現するのに用いられてよい。BPMNは、ビジネスプロセスの構造、フロー及び相互作用を詳細に記述することができ、利害関係者間の意思疎通を容易にできる表記法であってよい。これを介して、ロボット制御システムは、同一のバージョンのBPMN基盤のワークフローエンジンをロボット301と管制クラウド311に同一に備え、シナリオあるいはタスクの駆動設定に応じて、管制クラウド方式の駆動とロボット駆動方式を、ロボットサービスの方式とそれぞれの例外状況に対応できるように選択することができる。
【0076】
図4は、本発明の一実施形態によるロボット制御システムにおいて、第1状態でロボットを制御する方法を説明するためのフローチャートである。
【0077】
一実施形態によるロボット制御システムは、第1状態においてロボット(例:
図3のロボット301)と管制クラウド(例:
図3の管制クラウド311)に基づいて、ロボットを制御することができる。
【0078】
例えば、第1状態は、Wi-Fi又はLTEなどの、中継器が保障されている工場や、別途の陰影地域(例:オフライン地域)のない開豁地(例:公園)などでロボットの移動、探知、探知結果の伝送などの、オンライン状態で動作される状態を含むことができる。よって、ロボット制御システムは、第1状態において、ロボット内の別途のワークフローエンジンの駆動が不要なシナリオを構成することができる。
【0079】
例えば、段階(S410)において、管制クラウドは、第1シナリオ(例:
図4におけるパトロール(patrol)シナリオ)を開始することができる。このために、段階(S420)において、管制クラウドは、ロボットの状態が第1状態であるものと判断した場合、第1シナリオ(例:第1状態におけるパトロールシナリオ)を第2ワークフローエンジンに適用してパトロールシナリオの第1タスクグループを獲得することができる。管制クラウドは、パトロールシナリオの第1タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令をロボットに伝送することができる。具体的に、パトロールシナリオの第1タスクグループは、1番ポイント移動タスク、探知タスク、2番ポイント移動タスク、及び探知タスクを含むことができる。
【0080】
管制クラウドは、第1シナリオ(例:第1状態におけるパトロールシナリオ)を第2ワークフローエンジンに適用して、命令を伝達しロボットがこれを遂行するように制御することができる。また、管制クラウドは、ネットワーク環境が良好な場合にタスク単位まで実時間で変更することができ、ロボットのシナリオを遂行する状況を実時間でモニタリングすることができる。
【0081】
段階(S430)において、管制クラウドは、ロボットが従前の第1シナリオ(例:第1状態におけるパトロールシナリオ)に関する動作を全て遂行した場合、次の第1シナリオ(例:第1状態における充電シナリオ)を開始することができる。このために、管制クラウドは、ロボットの状態が第1状態であるものと判断した場合、次の第1シナリオ(例:第1状態における充電シナリオ)をロボットに直接的に伝送することができる。
【0082】
段階(S440)において、ロボットは、第1ワークフローエンジンに適用して充電シナリオの第1タスクグループを獲得することができる。具体的に、充電シナリオの第1タスクグループは、移動開始タスク、充電場所移動タスク、及び充電開始タスクを含むことができる。
【0083】
参考として、本明細書では、説明の便宜のために、第1シナリオ及び第1タスクグループは、ロボットの状態が第1状態である場合、ロボットと管制クラウド間の伝送/受信される対象であるものとして説明される。具体的に、ロボットの状態が第1状態である場合、第1シナリオは、パトロールシナリオ及び充電シナリオを含むことができる。さらに、第1タスクグループは、パトロールシナリオのタスクグループ、及び充電シナリオのタスクグループを含むことができる。そのため、第1シナリオ及び第1タスクグループは、これに制限されるものではない。
【0084】
管制クラウドは、ロボットを実時間でモニタリングすることにより、即刻的な問題に対応することができる。例えば、管制クラウドは、ネットワークの状態に基づいて、第1シナリオと異なる第1例外シナリオを生成することができる。すなわち、第1例外シナリオは、第1シナリオの例外状況を克服するための少なくとも1つ以上のタスクを含むことができる。管制クラウドは、第1例外シナリオを第2ワークフローエンジンに適用して、第1例外タスクグループを獲得することができる。管制クラウドは、第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令をロボットに伝送することができる。管制クラウドは、第1例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を遂行するロボットの状態をモニタリングすることができる。
【0085】
図5は、本発明の一実施形態によるロボット制御システムにおいて、第2状態でロボットを制御する方法を説明するためのフローチャートである。
【0086】
一実施形態によるロボット制御システムは、第2状態においてロボット(例:
図3のロボット301)と管制クラウド(例:
図3の管制クラウド311)に基づいて、ロボットを制御することができる。
【0087】
例えば、第2状態は、室内配送及び室外配送のロボットサービスを遂行する環境のように、エレベータの乗降、玄関門の出入、エレベータの乗降、地下へのロボットの移動、同一帯域幅を用いるネットワーク使用者が多くなる場合などのネットワーク帯域幅などに限界がある場合、及び不安定であるかオフラインが頻繁な状況を含むことがある。よって、ロボット制御システムは、第2状態において、ロボットと管制クラウドとの連動が要らないようにタスクをロボットローカル(local)環境に有しているようにシナリオを構成することができる。
【0088】
例えば、段階(S510)において、管制クラウドは、第2シナリオ(例:
図5で配送シナリオ)を開始することができる。管制クラウドは、ロボットの状態が第2状態であるものと判断した場合、第2シナリオ(例:第2状態における配送シナリオ)及び第2例外シナリオを含む代表シナリオを生成することができる。管制クラウドは、代表シナリオを、例えばXML単位でロボットに伝送することができる。
【0089】
ここで、第2例外シナリオは、予め決定された例外が発生したか、ロボットと管制クラウド間の通信ができないとき、第2シナリオの例外状況を克服するための少なくとも1つ以上のタスクを含むことができる。
【0090】
ロボットは、管制クラウドから受信した代表シナリオのうち第2シナリオ(例:第2状態における配送シナリオ)を、第1ワークフローエンジンに適用して、配送シナリオの第2タスクグループを獲得することができる。ロボットは、第2タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行していた途中、第2例外シナリオに関する例外状況が発生した場合、第2例外シナリオを第1ワークフローエンジンに適用して、第2例外タスクグループを獲得することができる。
【0091】
例えば、前述した例外状況は、ロボットがエレベータ乗車後にネットワークが断絶(offline)された状況を含むことができる。この場合、第2例外シナリオは、TTS音声出力タスク(例:3階で降車情報出力タスク、又は少しの間離れるようにという情報出力タスク)及び降車のためのロボット方向転換タスクなどを含むことができる。
【0092】
段階(S530)において、管制クラウドは、ロボットが従前の第2シナリオ(例:第2状態における配送シナリオ)に関する動作を全て遂行した場合、次の第2シナリオ(例:第2状態における充電シナリオ)を開始することができる。このために、管制クラウドは、ロボットの状態が第2状態であるものと判断した場合、次の第2シナリオ(例:第2状態における充電シナリオ)をロボットに直接的に伝送することができる。
【0093】
段階(S540)において、ロボットは、次の第2シナリオ(例:第2状態における充電シナリオ)を第1ワークフローエンジンに適用して充電シナリオの第2タスクグループを獲得することができる。
【0094】
参考として、本明細書では、説明の便宜のために、第2シナリオ及び第2タスクグループは、ロボットの状態が第2状態である場合、ロボットと管制クラウド間の伝送/受信される対象であるものとして説明される。具体的に、ロボットの状態が第2状態である場合、第2シナリオは、配送シナリオ及び充電シナリオを含むことができる。さらに、第2タスクグループは、配送シナリオのタスクグループ、及び充電シナリオのタスクグループを含むことができる。そのため、第2シナリオ及び第2タスクグループは、これに制限されるものではない。
【0095】
ロボットは、第2タスクグループ(例:配送シナリオの第2タスクグループ又は充電シナリオの第2タスクグループ)に含まれた少なくとも1つ以上のタスクに関する動作及び第2例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行した場合、第2タスクグループに含まれた少なくとも1つ以上のタスク及び第2例外タスクグループに含まれた少なくとも1つ以上のタスクを遂行した結果を管制クラウドに伝送することができる。
【0096】
図6は、本発明の一実施形態によるロボット制御システムにおいて、第3状態でロボットを制御する方法を説明するためのフローチャートである。
【0097】
一実施形態によるロボット制御システムは、第3状態においてロボット600と管制クラウド610に基づいて、ロボットを制御することができる。
【0098】
例えば、第3状態は、ロボット600と管制クラウド610のネットワークの連結状態がオンライン状態を前提として、例外的な状況で一部オフライン状態である。ロボット600の第3状態において、ロボット制御システムは、予め予測できなかった状況に対し、ワークフローエンジンを用いて予め準備したシナリオ以外の例外シナリオを実時間で反映して駆動する必要がある。具体的に、ロボット制御システムは、ロボット1台の状態が第3状態である場合(例:工場でロボット1台が他のロボットと交差走行時、誤った優先順位によって衝突事故でオフライン状態である場合)、ロボット制御システムは、当該優先順位を調整したシナリオ(例:第3例外シナリオ)を既に動作中の全てのロボットに実時間で同時に反映することができる。
【0099】
管制クラウド610は、ロボット600の状態が、第1状態及び第2状態のそれぞれと異なる第3状態であるものと判断した場合、第3シナリオを第2ワークフローエンジンに適用して、第3タスクグループを獲得することができる。例えば、管制クラウド610の管制サーバは、ワークフローに第3シナリオを適用することにより、シナリオをBPMN2.0XML単位で配布することができる。管制サーバは、第3シナリオを第2ワークフローエンジンに適用することで獲得された第3タスクグループに含まれた少なくとも1つ以上のタスクを、第1チャンネル(例:RSocket)を介してロボット600に伝送することができる。
【0100】
ロボット600は、第3状態において、管制クラウド610から受信した第3タスクグループに含まれた少なくとも1つ以上のタスク及び/又は第3タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行することができる。例えば、管制クラウド610から第3シナリオを受信した場合、ロボット600は、受信された第3シナリオを第1ワークフローエンジンに適用して第3タスクグループを獲得することができる。管制クラウド610から第3タスクグループを受信した場合、ロボット600は、受信した第3タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行することができる。管制クラウド610から第3タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令を受信した場合、ロボット600は、命令に関する動作を遂行することができる。
【0101】
ロボット600は、ロボットの状態及びネットワークの状態を、管制クラウド610に含まれた第2チャンネル(例:Kafka)を介して伝送することができる。
【0102】
管制クラウド610は、ロボット600から受信したロボットの状態及びネットワークの状態に基づいて、ロボットの状態が例外状態であるか決定(determine)することができる。管制クラウド610は、ロボットの状態が例外状態である場合、動作中止命令を第1チャンネルを介してロボット600に伝送することができる。また、例外状態を解決すべく、管制クラウド610は、第3例外シナリオを第2ワークフローエンジンに適用して、第3例外タスクグループを獲得することができる。
【0103】
ロボット600は、第3状態において、管制クラウド610から受信した第3例外タスクグループに含まれた少なくとも1つ以上のタスク及び/又は第3例外タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令に関する動作を遂行することができる。
【0104】
図7aから
図7cは、本発明の一実施形態によるロボット制御システムにおいて、第3状態でタスクを交替する方法を説明するためのフローチャートである。
【0105】
図7aに示されている通り、
図7aは、ロボット(例:
図3のロボット301)が第3状態において、移動タスク及び探知タスクに関する動作を遂行する過程を示す。例えば、ロボットは、移動タスクに関して、移動開始700a及び移動終了710aタスクの動作を遂行することができる。その後、ロボットは、探知タスクに関して、探知開始720a及び探知終了730aタスクの動作を遂行することができる。ロボットは、移動タスク及び探知タスクに関する動作を遂行した結果を、探知結果伝送740aタスクの動作で管制クラウド(例:
図3の管制クラウド311)に伝送することができる。
【0106】
図7bに示されている通り、
図7bは、ロボットが第3状態において、移動タスク及び探知タスクを含む第3シナリオを、複数個に動作を遂行する過程を示す。例えば、ロボットは、A地点において、A地点移動及びA地点探知の第3シナリオ700bに関する動作を遂行することができる。ロボットは、A地点移動及びA地点探知の第3シナリオ700bを第1ワークフローエンジンに適用して、A地点移動及びA地点探知の第3シナリオ700bの第3タスクグループを獲得することができる。これと類似に、ロボットは、B地点において、B地点移動及びB地点探知の第3シナリオ710b、及びC地点において、C地点移動及びC地点探知の第3シナリオ720bに関するそれぞれの動作を遂行することができる。
【0107】
図7cに示されている通り、
図7cは、
図7bのA地点、B地点、又はC地点のうち少なくとも1つの地点においてオフライン発生でロボットが例外状態である場合、第3シナリオでない第3例外シナリオで動作を遂行する過程を示す。例えば、ロボットがB地点においてオフライン発生で例外状態である場合、管制クラウドは、動作中止命令をロボットに伝送することができる。その後、管制クラウドは、第3例外シナリオを第2ワークフローエンジンに適用して第3例外タスクグループを獲得することができる。
【0108】
管制クラウドは、第3例外タスクグループをB地点においてオフライン発生で例外状態であるロボットに伝送することができる。ロボットは、第3例外タスクグループに含まれた少なくとも1つ以上のタスクに関する動作を遂行することができる。例えば、
図7cにおける参照番号700cから730cは、
図7aにおける参照番号700aから730cと同一であってよい。すなわち、第3例外タスクグループに含まれた少なくとも1つ以上のタスクは、第3タスクグループに含まれた少なくとも1つ以上のタスクと同一であってよい。但し、第3タスクグループと異なり、第3例外タスクグループは、待機場所への移動後、探知結果伝送タスク740cを追加でさらに含むことができる。
【0109】
図8は、本発明の一実施形態によるロボット制御システムにおいて、タスクを処理する方法を説明するためのフローチャートである。
【0110】
図8に示されている通り、
図8は、ロボット制御システムにおいてシナリオとタスクを処理する方法を示したフローチャートである。
【0111】
ロボット800は、管制クラウド810から命令、タスクグループ、及びシナリオのうち少なくとも1つを受信する前までタスク待機状態であってよい。
【0112】
管制クラウド810は、シナリオを実行することができる。例えば、管制クラウド810は、シナリオをロボット800に伝送することができる。また、管制クラウド810は、シナリオをワークフローエンジンに適用してタスクグループを獲得し、獲得したタスクグループをロボット800に伝送することができる。さらに、管制クラウド810は、タスクグループに含まれた少なくとも1つ以上のタスクそれぞれの命令をロボット800に伝送することができる。すなわち、管制クラウド810は、命令、タスクグループ、及びシナリオのうち少なくとも1つをロボット800に伝送することにより、シナリオを実行することができる。
【0113】
ロボット800は、例えば、管制クラウド810から受信したタスクの遂行可否を判断することができる。もし、ロボット800が受信したタスクに関する動作を遂行することができれば、タスクの開始及びロボット800の状態を実時間で管制クラウド810に伝送することができる。これと異なり、ロボット800が受信したタスクに関する動作を遂行することができなければ、管制クラウド810に遂行不可情報を伝送することができる。
【0114】
参考として、ロボット800が受信したタスクに関する動作を遂行することができるか否かは、バッテリー状態、管制クラウド810で確認することができない命令、又は周辺に障害物がある場合のうち少なくとも1つ以上を含むことができる。
【0115】
管制クラウド810は、ロボット800に、例えば、タスクを伝送し実時間でロボット800をモニタリングすることによりロボット800の状態をチェックすることができる。その後、管制クラウド810は、ロボット800からタスク終了の情報を受信した場合、次のタスクの存否を確認した後、シナリオを終了することができる。
【0116】
図9は、本発明の一実施形態によるロボット制御システム又はロボット制御方法に関するコンピュータシステムを示した図である。
【0117】
図9に示されている通り、ロボット制御システム又はロボット制御方法に関するコンピュータシステム1000は、バス1200を介して連結される少なくとも1つのプロセッサ1100、メモリ1300、使用者インターフェース入力装置1400、使用者インターフェース出力装置1500、ストレージ1600、及びネットワークインターフェース1700を含むことができる。
【0118】
プロセッサ1100は、中央処理装置(CPU)又はメモリ1300及び/又はストレージ1600に格納された命令語に対する処理を実行する半導体装置であってよい。メモリ1300及びストレージ1600は、多様な種類の揮発性又は不揮発性格納媒体を含むことができる。例えば、メモリ1300は、ROM(Read Only Memory)及びRAM(Random Access Memory)を含むことができる。
【0119】
したがって、本明細書に開示された実施形態に関して説明された方法又はアルゴリズムの段階は、プロセッサ1100により実行されるハードウェア、ソフトウェアモジュール、又はその2つの結合により直接具現されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスター、ハードディスク、脱着型ディスク、CD-ROMのような格納媒体(すなわち、メモリ1300及び/又はストレージ1600)に常在することもできる。
【0120】
例示的な格納媒体は、プロセッサ1100にカップリングされ、そのプロセッサ1100は、格納媒体から情報を読み取ることができ、格納媒体に情報を書き込むことができる。他の方法として、格納媒体は、プロセッサ1100と一体型であってもよい。プロセッサ及び格納媒体は、注文型集積回路(ASIC)内に常在することもできる。ASICは、使用者端末機内に常在することもできる。他の方法として、プロセッサ及び格納媒体は、使用者端末機内に個別コンポネントとして常在することもできる。
【0121】
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明の属する技術分野において通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能なはずである。
【0122】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、及び/又はハードウェア構成要素及びソフトウェア構成要素の組み合わせで具現され得る。例えば、実施形態で説明された装置、方法及び構成要素は、例えば、プロセッサ、コントローラ、ALU(Arithmetic Logic Unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(Field Programmable Gate Array)、PLU(Programmable Logic Unit)、マイクロプロセッサ、又は命令(instruction)を実行して応答することができる他の何らかの装置のように、汎用コンピュータ又は特殊目的コンピュータを用いて具現され得る。処理装置は、運営体制(OS)及び前記運営体制上で遂行されるソフトウェアアプリケーションを遂行することができる。また、処理装置は、ソフトウェアの実行に応答して、データを接近、格納、操作、処理及び生成することもできる。理解の便宜のために、処理装置は、1つが用いられるものと説明された場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数個の処理要素(processing element)及び/又は複数類型の処理要素を含むことができることが分かる。例えば、処理装置は、複数個のプロセッサ又は1つのプロセッサ及び1つのコントローラを含むことができる。また、並列プロセッサ(parallel processor)のような、他の処理構成(processing configuration)も可能である。
【0123】
ソフトウェアは、コンピュータプログラム(computer program)、コード(code)、命令(instruction)、又はこれらのうち1つ以上の組み合わせを含むことができ、望む通りに動作するように処理装置を構成するか、独立的に又は結合的に(collectively)処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されるか処理装置に命令又はデータを提供するために、ある類型の機械、構成要素(component)、物理的装置、仮想装置(virtual equipment)、コンピュータ格納媒体又は装置、又は伝送される信号波(signal wave)に永久的に、又は一時的に具体化(embody)され得る。ソフトウェアは、ネットワークで連結されたコンピュータシステム上に分散されて、分散された方法で格納されるか実行されてもよい。ソフトウェア及びデータは、コンピュータ読取り可能記録媒体に格納されてよい。
【0124】
実施形態による方法は、多様なコンピュータ手段を介して遂行され得るプログラム命令の形態に具現され、コンピュータ読取り可能媒体に記録され得る。コンピュータ読取り可能媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができ、媒体に記録されるプログラム命令は、実施形態のために特別に設計され構成されたものであるか、コンピュータソフトウェアの当業者に公知となって使用可能なものであってもよい。コンピュータ読取り可能記録媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体(magnetic media)、CD-ROM、DVDのような光記録媒体(optical media)、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、及びロム(ROM)、ラム(RAM)、フラッシュメモリなどのようなプログラム命令を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって作られるもののような機械語コードのみならず、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。
【0125】
以上で説明したハードウェア装置は、実施形態の動作を遂行するために1つ又は複数のソフトウェアモジュールとして作動するように構成されてよく、その逆も同様である。
【0126】
以上のように実施形態がたとえ限定された図面によって説明されたとしても、当該技術分野において通常の知識を有する者であれば、これに基づいて多様な技術的修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順序で遂行されるか、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態に結合又は組み合わされるか、他の構成要素又は均等物によって代置されるか置換されても適切な結果が達成され得る。
【0127】
そのため、他の具現、他の実施形態及び特許請求の範囲と均等なものも後述する特許請求の範囲の範囲に属する。
【0128】
したがって、本発明に開示された実施形態は、発明の技術思想を限定するためではなく説明するためのものであり、このような実施形態によって、本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、下記の特許請求の範囲によって解釈されなければならず、それと同等の範囲内にある全ての技術思想は、本発明の権利範囲に含まれるものと解釈されなければならない。