(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025026641
(43)【公開日】2025-02-21
(54)【発明の名称】ロボットを基本動作させるためのアクチュエータへの指示を自動獲得する方法
(51)【国際特許分類】
G05D 1/69 20240101AFI20250214BHJP
G05D 1/692 20240101ALI20250214BHJP
G05D 1/225 20240101ALI20250214BHJP
【FI】
G05D1/69
G05D1/692
G05D1/225
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2024215254
(22)【出願日】2024-12-10
(62)【分割の表示】P 2021171130の分割
【原出願日】2021-10-19
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】高橋 裕章
(72)【発明者】
【氏名】稗圃 泰彦
(57)【要約】
【課題】ロボットのスペックが様々に存在する状況においてもロボットを基本動作させるための指示の自動獲得を可能とする。
【解決手段】移動するロボットを基本動作させるためのアクチュエータへの指示を自動獲得する方法であって、ロボットが外界を認識するセンサと複数のアクチュエータ要素へのアクセスを確保し、当該複数要素の各々への制御入力の有無と、制御入力の信号種別との組合せを列挙(S41)し、組合せの各々においてアクチュエータへの制御入力を行う(S45)ことにより、ロボットを試行動作させ、試行動作の前後におけるロボットの移動を、試行動作の前後における前記センサの出力を用いて識別(S43,S46,S47)し、組合せの各々におけるロボットの移動の中から、基本動作に該当するものを選出(S51)して、選出された基本動作に対応する組み合わせを、ロボットを基本動作させるためのアクチュエータへの指示とする。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数のアクチュエータによって駆動される移動機構により移動するロボットを基本動作させるための、前記複数のアクチュエータへの指示を自動獲得する方法であって、
前記ロボットと共通スペックの別ロボットに関して、基本動作と、当該別ロボットを当該基本動作させるための、複数のアクチュエータへの指示がテンプレートとして既知であり、
前記複数のアクチュエータ要素の各々への制御入力の有無と、制御入力がある場合の制御入力の信号種別の指定情報と、当該指定情報のもとで前記アクチュエータへの制御入力が行われることで、前記ロボットによって行われる個別動作の前後における前記ロボットの移動情報と、を紐づける形で、前記ロボットの動作ログを取得(S27)し、
前記動作ログ及び前記テンプレートを用いて学習(S28)することにより、前記基本動作を実現する最適なものとして、前記複数のアクチュエータ要素の各々への制御入力の有無と、制御入力がある場合の制御入力の信号種別との指定情報を自動獲得し、
前記移動機構は車輪であり、前記複数のアクチュエータ要素の各々への制御入力の信号種別には、当該アクチュエータ要素の駆動制御を介して対応する車輪を正転または反転させるものが含まれることを特徴とする方法。
【請求項2】
前記学習(S28)することは、前記動作ログを、前記テンプレートに含まれる基本動作の各々に対応するクラスタへと分類(S281,S282)し、当該分類されたクラスタごとの動作ログから、前記基本動作を実現する最適なものを選出する(S284)ことを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記クラスタへと分類(S281,S282)することは、前記動作ログを構成する各々の個別動作を、当該個別動作の前後における前記ロボットの移動情報によって、教師なし学習により分類する(S282)ことを含むことを特徴とする請求項1または2に記載の方法。
【請求項4】
前記ロボットへドングルが接続される(S1)ことをトリガとして、前記アクチュエータへの指示を自動獲得する方法が実行されることを特徴とする請求項1ないし3のいずれかに記載の方法。
【請求項5】
前記基本動作には、前記ロボットの平面上の移動のうち、前進、後退、右旋回または左旋回が含まれることを特徴とする請求項2に記載の方法。
【請求項6】
前記基本動作に該当するものを前進、後退、右旋回または左旋回として選出する(S284,S285)に際して、
前記クラスタごとの動作ログの中から、移動距離が前進に該当する、移動距離が後退に該当する、姿勢変化量が右旋回に該当する、または、姿勢変化量が左旋回に該当すると判定されるものを選択し、
前進、後退、右旋回または左旋回のうち1つにおいて、当該選択されたものが複数ある場合には、対応する移動距離または姿勢変化量が最大となるものを最も効果があるものとして選出することを特徴とする請求項5に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを基本動作させるためのアクチュエータへの指示を自動獲得する方法に関する。
【背景技術】
【0002】
IoT(モノのインターネット)分野において、ロボットを活用することが行われている。特許文献1(発明の名称:大量のデータセットを使用する産業用のモノのインターネットのデータ収集環境における検出のための方法及びシステム)では、産業環境におけるデータ収集(IoT)を目的に、ロボットやドローンの遠隔制御、自律動作が行われる。特許文献2(発明の名称:自律学習型ロボット装置及び自律学習型ロボット装置の動作生成方法)では、ロボットと通信して環境に応じたロボットハンドの動作の学習がなされる。非特許文献1では、例えば屋内におけるカーペットや屋外における舗装などの個別の路面環境に応じたオドメトリの系統誤差を予め路面環境地図として記録しておき、ロボット実走行時の実位置推定時にこの地図を利用することで、路面環境にロバストなオドメトリを実現する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2020-530159号公報
【特許文献2】特開2020-028950号公報
【非特許文献】
【0004】
【非特許文献1】山田大地, 大矢晃久: "路面環境地図に基づき系統誤差を校正するオドメトリ -多様な路面における有効性の検証-", 日本ロボット学会第30回記念学術講演会, 4J1-4 (2012.9)
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上のような従来技術では、ロボット群を管理するシステムであるプラットフォームの側において、ロボットのスペックが既知であることを前提としていた。この前提の下では、プラットフォーム側から管理したいロボット群が例えば様々な店舗等の様々な現場に分かれて存在しており、個別のロボットごとにスペック(ロボットの製造業者やその型番などで定まるスペック)が様々に存在しうる状況において、適切な管理を行うことができなかった。すなわち、ロボットのスペックが既知であることを前提とする場合は、ロボットのスペックが多種多様に存在する場合、ロボットのスペックごとに手作業等で制御命令等を用意する手間が多く発生しまうこととなり、適切な管理が困難であった。
【0006】
ロボットのスペックとして具体的に例えば、車両型ロボットであってタイヤで移動する種類のロボットを対象とすることのみが既知であり、このような車両型ロボットに該当するロボットが多数・多種類に渡って存在しうる中で、スペックとしてタイヤの大きさなどの個体条件が不明であれば、このロボットに対して実行を依頼したいタスクを実現する際の要素的な動作である、ロボット移動の制御を行おうとしても、どのように制御すればどのようにロボットが移動するかが不明であるため、適切な制御や管理が不可能であった。
【0007】
上記従来技術の課題に鑑み、本発明は、ロボットのスペックが様々に存在する状況においてもロボットを基本動作させるための指示の自動獲得を可能とすることにより、ロボットの適切な管理を行うことのできる方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、アクチュエータによって駆動される移動機構により移動するロボットを基本動作させるための、前記アクチュエータへの指示を自動獲得する方法であって、前記ロボットが外界を認識するセンサへのアクセスを確保(S1,S2)し、前記アクチュエータを構成する複数のアクチュエータ要素の各々への制御入力のアクセスを確保(S1,S2)し、前記複数のアクチュエータ要素の各々への制御入力の有無と、制御入力の信号種別との組み合わせを列挙(S41)し、前記列挙された組み合わせの各々において前記アクチュエータへの制御入力を行う(S45)ことにより、前記ロボットを試行動作させ、当該試行動作の前後における前記ロボットの移動を、当該試行動作の前後における前記センサの出力を用いて識別(S43,S46,S47)し、前記列挙された組み合わせの各々における前記ロボットの移動の中から、基本動作に該当するものを選出(S51)して、当該選出された基本動作に対応する組み合わせを、前記ロボットを基本動作させるための前記アクチュエータへの指示として自動獲得することを第1の特徴とする。
【0009】
また、上記目的を達成するため、本発明は、複数のアクチュエータによって駆動される移動機構により移動するロボットを基本動作させるための、前記複数のアクチュエータへの指示を自動獲得する方法であって、前記ロボットと共通スペックの別ロボットに関して、基本動作と、当該別ロボットを当該基本動作させるための、複数のアクチュエータへの指示がテンプレートとして既知であり、前記複数のアクチュエータ要素の各々への制御入力の有無と、制御入力の信号種別との指定情報と、当該指定情報のもとで前記アクチュエータへの制御入力が行われることで、前記ロボットによって行われる個別動作の前後における前記ロボットの移動情報と、を紐づける形で、前記ロボットの動作ログを取得(S27)し、前記動作ログ及び前記テンプレートを用いて学習(S28)することにより、前記基本動作を実現する最適なものとして、前記複数のアクチュエータ要素の各々への制御入力の有無と、制御入力の信号種別との指定情報を自動獲得することを第2の特徴とする。
【発明の効果】
【0010】
前記第1の特徴によれば、複数のアクチュエータ要素の各々への制御入力の有無と、制御入力の信号種別との組み合わせを列挙してロボットを試行動作させ、試行動作の前後におけるロボットの移動の中から基本動作に対応するものを選別することにより、ロボットのスペックとしてアクチュエータ要素以降の移動機構の態様が不明であっても、ロボットに基本動作を実現させるための、複数のアクチュエータ要素への制御入力の態様を自動獲得することが可能であるため、ロボットのスペックが様々に存在する状況においても効率的に、適切な管理を行うことができる。
【0011】
前記第2の特徴によれば、前記第1の特徴においてロボットを試行動作させることで得られる情報に代えてロボットの個別動作に関する動作ログを取得し、この動作ログ及びスペック共通の別ロボットについてのテンプレートを用いて学習することにより、ロボットに基本動作を実現させるための、複数のアクチュエータ要素への制御入力の態様を、共通スペックの前提のもとで当該ロボットについて最適なものとして自動獲得することが可能であるため、共通スペックの別ロボットについてテンプレート情報を既知としておく前提のもとで、ロボットのスペックが様々に存在する状況においても効率的に、適切な管理を行うことができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係る自動動作獲得システムの全体的な構成図である。
【
図2】一実施形態に係る自動動作獲得システムのロボット、ドングル及びサーバについての構成図である。
【
図3】一実施形態に係る自動動作獲得システムの動作のフローチャートである。
【
図4】一実施形態に係る基本動作獲得部の処理の詳細(すなわち、
図3のステップS3の詳細)を示すフローチャートである。
【
図5】ロボットにおけるアクチュエータと移動機構との構成例の1つを示す図である。
【
図6】例EX1~EX4として
図4の各ステップの説明例を示す図である。
【
図7】例EX5~EX8として
図4の各ステップの説明例を示す図である。
【
図8】JSON形式で動作を記録した例を示す図である。
【
図9】別の実施形態に係る自動動作獲得システムにおけるロボット及びサーバの機能ブロック図である。
【
図10】別の実施形態に係る自動動作獲得システムの動作のフローチャートである。
【
図11】一実施形態に係る学習部による学習の詳細(
図10のステップS28の詳細)を示すフローチャートである。
【発明を実施するための形態】
【0013】
図1は、一実施形態に係る自動動作獲得システムの全体的な構成図である。自動動作獲得システム100は、ロボット10及びサーバ50を備える。ロボット10とサーバ50とは、インターネット等のネットワークNWを介して相互に通信可能とされる。ロボット10は、当該ロボット10が稼働する現場であるフィールドF(例えば店舗などであり、屋内・屋外を問わない)に配置されており、フィールドFを認識するためのカメラ等で構成されるセンサ15と車輪等で構成される移動機構17とを有する。ロボット10にはまた、着脱可能なドングル30が取り付けられている。
【0014】
図2は、一実施形態に係る自動動作獲得システム100のロボット10、ドングル30及びサーバ50についての構成図である。ロボット10は、そのハードウェア上の構成として、CPU(中央演算処理装置)やGPU(グラフィック処理装置)等で構成される第1プロセッサ11と、この第1プロセッサ11に作業領域を提供する揮発性メモリ等で構成される一次記憶装置としての第1RAM12と、この第1プロセッサ11が実行するプログラムや種々のデータを格納する不揮発性メモリ等で構成される二次記憶装置としての第1ROM13と、有線通信及び/又は無線通信の機能を担うネットワークインタフェースカードで構成される第1通信インタフェース(IF)14と、フィールドFを認識するためのカメラ及び/又はLiDARセンサ等で構成されるセンサ15と、モータ等のアクチュエータ16と、当該アクチュエータ16による駆動力を受けてロボット10のフィールドF内での移動を可能とする車輪等で構成される移動機構17と、USBポート等で構成されロボット10に対して様々な周辺機器(ゲスト機器)を接続可能とする第1入出力インタフェース(IF)18と、これら各ハードウェア間でのデータ送受信を担う第1バスBS1と、を備える。
【0015】
ドングル30は、そのハードウェア上の構成として、USBポート等で構成されドングル30をゲスト機器としてロボット10等のホスト機器に接続可能とする第2入出力インタフェース35と、CPU(中央演算処理装置)やGPU(グラフィック処理装置)等で構成される第2プロセッサ31と、この第2プロセッサ31に作業領域を提供する揮発性メモリ等で構成される一次記憶装置としての第2RAM32と、プログラムや種々のデータを格納する不揮発性メモリ等で構成される二次記憶装置としての第2ROM33と、有線通信及び/又は無線通信の機能を担うネットワークインタフェースカード等で構成される第2通信インタフェース(IF)34と、これら各ハードウェア間でのデータ送受信を担う第2バスBS2と、を備える。
【0016】
サーバ50は、そのハードウェア上の構成として、以上のロボット10及びドングル30と同様に、一般的なコンピュータとしての構成(なお、ロボット10では当該構成にさらに自律移動等を実現するための構成としてセンサ15、アクチュエータ16および移動機構17が追加されている)を備える。すなわち、サーバ50は、CPU(中央演算処理装置)やGPU(グラフィック処理装置)等で構成される第3プロセッサ51と、この第3プロセッサ51に作業領域を提供する揮発性メモリ等で構成される一次記憶装置としての第3RAM52と、プログラムや種々のデータを格納する不揮発性メモリ等で構成される二次記憶装置としての第3ROM53と、有線通信及び/又は無線通信の機能を担うネットワークインタフェースカード等で構成される第3通信インタフェース(IF)54と、USBポート等で構成されて様々な入出力の機器(キーボード、マウス、ディスプレイ等)の接続を可能とする第3入出力インタフェース55と、これら各ハードウェア間でのデータ送受信を担う第3バスBS3と、を備える。
【0017】
後述(
図3のステップS1)するように、本実施形態においては第1入出力インタフェース18と第2入出力インタフェース35とを接続することによってドングル30がロボット10に接続される。線L2で模式的に示されるように、当該接続された後に、ドングル30の第2ROM33に格納されている準備プログラム(PG)P21及び基本動作獲得プログラム(PG)P22が第2RAM32上へと読み込まれ、第2プロセッサ31によって実行されることによって実現される機能的な構成が制御部20である。この際、ドングル30は自身においてバッテリを有さず、ロボット10が有するバッテリから給電を受けて第2プロセッサ31等を稼働させ、当該機能的な構成を実現するものであってよいし、ドングル30自身が単独でドングル30の第2プロセッサ31等に給電を行って稼働させるものであってもよい。
【0018】
なお、変形例として、制御部20はドングル30の第2プロセッサ31によって実現されるのではなく、線L1で模式的に示されるように、ロボット10の第1プロセッサ11によって実現されるものであってもよい。すなわち、前記接続された後に、ドングル30の第2ROM33に格納されている準備プログラム(PG)P21及び基本動作獲得プログラム(PG)P22がロボット10の第1RAM12上へと読み込まれ、ロボット10の第1プロセッサ11によって実行されることによって実現される機能的な構成が制御部20であってもよい。この変形例の場合は、ドングル30の構成として第2プロセッサ31及び第2RAM32が省略されていてもよい。また同様に、さらなる変形例として、制御部20はサーバ50の第3プロセッサ51がネットワークNWを介して制御命令を送信することによって実現され、ドングル30の第2プロセッサ31またはロボット10の第1プロセッサ11においてこの制御命令を受信して制御処理が実現されるものであってもよい。(すなわち、ドングル30の第2ROM33に準備プログラムP21及び基本動作獲得プログラムP22を格納しておくことに代えて、これらプログラム(制御命令)をサーバ50からロボット10やドングル30に送信して、サーバ50の制御による制御部20を実現してもよい。)
【0019】
制御部20は、機能ブロック構成として、準備部21及び基本動作獲得部22を備える。第2プロセッサ31(変形例では第1プロセッサ11)が準備プログラムP21を実行して実現されるのが準備部21であり、この処理に次いで、第2プロセッサ31(変形例では第1プロセッサ11)が基本動作獲得プログラムP22を実行して実現されるのが基本動作獲得部22である。基本動作獲得部22はさらに、基準点決定部23、動作試行部24及び基本動作選出部25を備える。
【0020】
なお、ロボット10が第1通信インタフェース14を有していない構成(
図2から一部が省略された構成)により、ロボット10単独では外部との通信機能を有しないが、ドングル30が接続された状態において第2通信インタフェース34を利用することにより、ロボット10が外部との通信機能を獲得する実施形態も可能である。
【0021】
図3は、一実施形態に係る自動動作獲得システム100の動作のフローチャートである。ステップS1では、フィールドFに存在するロボット10の管理者等が、ロボット10にドングル30を接続してからステップS2へと進む。
【0022】
なお、ステップS1でのドングル30の接続を行うために、管理者等は予め、ロボット10に対して電源投入し、第1プロセッサ11が第1ROM13に格納されたロボット制御OS(オペレーティングシステム)を読み込んで実行し、ロボット10のセンサ15及びアクチュエータ16が制御命令(ドングル30の接続をトリガとするもの)を待つ待機状態を取るようにしておく。ステップS1では当該待機状態にあるロボット10に対して、管理者等がドングル30を接続する。
【0023】
ステップS2では、ステップS1でのドングル30の接続をトリガとして準備プログラムP21を第2プロセッサ31(変形例では第1プロセッサ11)が読み込んで実行することにより、準備部21が各種の準備処理を行ってからステップS3へと進む。ステップS2での準備処理は、(1)ネットワーク設定、(2)ハードウェア探索及び(3)制御アプリ(アプリケーション)設定であり、それぞれ以下の通りである。
【0024】
(1) ネットワーク設定に関して、第1通信インタフェース14又は第2通信インタフェース34を起動することにより、制御部20の指示のもとで、ネットワークNWを介してロボット10及びドングル30とサーバ50とを通信可能な状態とする。
【0025】
(2) ハードウェア探索に関して、カメラ及び/又はLiDARで構成されるセンサ15と、アクチュエータ16とを制御部20から探索し、アクセス可能とする。
【0026】
センサ15に関して、例えばロボット10においてUSBデバイスとして接続されて実装されている場合であれば、OSにおけるUSBデバイスを探索する標準的な機能(lsusbコマンドなど)でその存在を探索し、アクセス可能とすることができる。アクチュエータ16に関して、例えばロボット10において汎用入出力ポート(GPIO)を介して接続されて実装されているのであれば、当該GPIOの複数のピンに対して1本ずつ通電し、通電が確認されたピンがそれぞれ、アクチュエータ16(複数存在しうる)に該当するものとして特定し、アクセス可能なものとして認識することができる。
【0027】
なお、本実施形態ではアクチュエータ16及び移動機構17の構成が未知であることを前提とするので、このステップS1は、ピンへの通電確認を通じて、アクチュエータ16(複数存在しうる)の個別の存在のみを確認するものである。
【0028】
(3) 制御アプリ設定に関して、上記ハードウェア探索の結果に応じて、各ハードウェアを制御部20から制御可能とすべく、各ハードウェアに応じた所定の制御アプリケーション(デバイスドライバ等)を、ネットワークNW上で当該アプリケーションを配布しているサーバ等から読み込む。センサ15を構成するLiDARセンサ等に関しては、制御アプリを読み込んだうえでさらに、初期化処理として座標のキャリブレーション等を行うようにしてもよい。
【0029】
以上のステップS2において準備部21による準備が整ったもとで、ステップS3では、基本動作獲得部22がロボット10を試行的に制御してその結果を整理することにより、ロボット10の基本動作に関する情報を取得し、ネットワークNWを介してサーバ50へとこの基本動作の情報を送信してから、ステップS4へと進む。
【0030】
ステップS4では、ステップS3で獲得した基本動作を用いてサーバ50からロボット10へと所定のタスクを実行させる命令を送信し、ロボット10において所定タスクを実行させることで、
図3のフローを終了する。なお、所定タスクは、例えばロボット10の移動や物品搬送等を実現するものとして、ロボット10が実行する1つ以上の所定指示のシーケンス(場合分けや、繰り返し制御も含んでよい)で構成することができ、ステップS3で獲得する所定の基本動作は、この基本動作の所定の組み合わせによってステップS4においてロボット10に実行させる所定のタスクが全体的または部分的に実現可能となるものとして、予め設定しておけばよい。
【0031】
例えば、ステップS4でロボット10に実行させる所定のタスクがロボット10の移動を伴って実現されるもの(例えば、フィールドF内を移動しながら監視するタスクや、フィールドF内を移動することによる物品の搬送)である場合には、ステップS3ではロボット10が任意の軌跡上の移動を実現するための基本動作として、例えば後述するような、前進、行進、右旋回及び左旋回で構成される4種類の基本動作を獲得するようにすればよい。基本動作は、前進、後退、右旋回及び左旋回等の移動だけではなく、アーム等の他の可動部の動作が含まれていてもよい。
【0032】
こうして、ステップS4では所定のタスクとして、ロボット10に対して例えばフィールドF内を現在地から所定の目的地へと移動するタスクを実行させるために、当該移動する軌跡を実現するための基本動作の組み合わせ命令をサーバ50からロボット10へと送信し、ロボット10において当該軌道に沿った基本動作のシーケンスに従い、当該移動タスクを実現することが可能となる。また、ステップS4にてロボット10へ所定のタスクを依頼して実行させる直前に、ステップS3までの動作試行で基本動作を獲得することにより、タスク実行直前時点でのロボット10の稼働状態や動作環境の状態を効果的に確認及び把握することもできる。
【0033】
図4は、一実施形態に係る基本動作獲得部22の処理の詳細(すなわち、
図3のステップS3の詳細)を示すフローチャートである。各ステップの右側に対応する機能ブロックの構成を併記して示すように
図4の各ステップのうち、ステップS31,S32は基準点決定部23が基準点(ロボット10の位置をフィールドF内の座標として定義するための基準点)を決定するステップであり、ステップS41~S49は動作試行部24が当該決定された基準点を用いてロボット10を制御してフィールドF内において試行的な動作を行わせ、その結果を記録するステップであり、ステップS51~S53は基本動作選出部25が動作試行部24の試行結果を整理してロボット10の基本動作に関する情報を抽出するステップである。
【0034】
以下、
図4の各ステップを説明するが、各ステップの動作主体は上記の通り、基準点決定部23、動作試行部24または基本動作選出部25である(すなわち、基本動作獲得プログラムP22の各モジュールを実行している第1プロセッサ11または第2プロセッサ31である)ため、説明の簡素化の観点から動作主体についての言及は省略したうえで、処理内容のみを説明する。
【0035】
以下、説明例として、
図5に模式例(ロボット10をフィールドFの地面に置いた際の上空側から見た状態の模式例)を示すように、ロボット10が移動機構17として四輪の車両型ロボットで構成されており、アクチュエータ16及び移動機構17の構成が以下(1)~(4)のように4通り存在する場合に関して説明する。
【0036】
(1) 1つ目のアクチュエータ16としてアクチュエータA1が、1つ目の移動機構17として四輪のうち左側前輪W1を駆動する。
(2) 2つ目のアクチュエータ16としてアクチュエータA2が、2つ目の移動機構17として四輪のうち右側前輪W2を駆動する。
(3) 3つ目のアクチュエータ16としてアクチュエータA3が、3つ目の移動機構17として四輪のうち左側後輪W3を駆動する。
(4) 4つ目のアクチュエータ16としてアクチュエータA4が、4つ目の移動機構17として四輪のうち右側後輪W4を駆動する。
【0037】
ここで、注意すべき事項として、制御部20の側では、
図4のフローの開始時点において、ロボット10の個体条件を知ることができない状態にあることを特記する。例えば、車輪が何個存在して、ロボット10のどの位置に設置されており、各々の車輪におけるタイヤの直径がどれだけであるかといった条件(移動機構17の機械的構成に関する条件)や、アクチュエータ16とこれが駆動する移動機構17との対応関係についての条件について、制御部20の側では未知の状態にある。
【0038】
図5の例であれば、準備部21(
図3のステップS2)の準備処理において、アクチュエータ16として4個のアクチュエータA1~A4が制御可能なものとして存在することのみが、制御部20に対して既知の状態となっている。一方で、4個の各アクチュエータA1~A4について、移動機構17のうちいずれかを駆動するものであるものの、具体的に
図5に示されるような各車輪W1~W4のいずれを駆動するかという対応関係は、制御部20の側では未知の状態にある。また、移動機構17がそもそも、具体的に
図5のような各車輪W1~W4で構成されているという情報も、制御部20の側では未知の状態にある。
【0039】
本実施形態の
図4のフローではこのように、アクチュエータ16としての複数の制御対象が例えば
図5のように4個のアクチュエータA1~A4として存在することのみが既知の状態(アクチュエータ16よりも先の移動機構17に関しては、駆動させる対応関係及び機械的構成が未知の状態)を開始時点として、4個のアクチュエータA1~A4をどのような態様で駆動することで、ロボット10をどのような態様で移動させることが可能かという情報を、ロボット10の基本動作として獲得することが可能である。
【0040】
なお、説明例として、次の制約を設けるものとする。
(a) 4個のアクチュエータA1~A4の駆動する対象はいずれかの車輪であり、少なくとも正転制御または逆転制御が可能である。
(b) 獲得される基本動作は、ロボット10を移動させる基本要素的な動作として、前進、後退、右旋回及び左旋回の4通りとする。
【0041】
以上の通りの制約があることを前提に、以下、
図4の各ステップを説明する。
図6及び
図7は、
図5のロボット10のアクチュエータ16及び移動機構17の例に対応するものとして、それぞれ例EX1~EX4及び例EX5~EX8として、
図4の各ステップの説明例を示す図であり、以下において適宜、参照する。
【0042】
ステップS31ではフィールドFの認識手段としてのセンサ15を駆動することにより、そのセンサ出力(フィールドFの認識結果)を受け取って解析することにより、ロボット10の周辺の物体を探索してから、ステップS32へと進む。
【0043】
例えば、センサ15がLiDARであれば、制御アプリの設定にて動作可能になったLiDARを起動し、レーザー光を照射して周囲(フィールドF)の点群情報をセンサ出力として取得し、点群情報から地面除去などの前処理を行い、点群情報をクラスタリングして物体の検出を行うことができる。点群情報からの物体検出には任意の既存手法を用いてよく、例えば以下の非特許文献2の手法を用いてよい。
[非特許文献2] 自動運転のためのLiDARを用いたリアルタイム周辺環境認識システムの開発
【0044】
ステップS32では、ステップS31での結果から基準点を決定し、当該基準点をもとにロボット10(静止状態にある)の座標を求めてからステップS41へと進む。この座標は、フィールドFの平面上で定義される2次元座標として、直交座標(x,y)やこれと対応関係にある極座標(r,θ)として定義してよい。
【0045】
基準点の決定は、ステップS31の物体検出結果の中から、以下の2条件を満たす物体を基準点として選出すればよい。この2条件目については、センサ15の位置(及び向き)から閾値範囲内に位置している物体とすればよい。
・安定して位置取得ができる円柱や球体であること
・ロボット10が動作してもセンサ15が検知できる距離にあること
【0046】
なお、上記を満たす物体が存在しないときは環境のランドマークを基準点として決定してもよい。ランドマーク検出は例えば以下の非特許文献3の既存手法を用いることができる。
[非特許文献3] 視覚システム搭載型自律走行ロボットの開発
【0047】
図6の例EX1では、ステップS31,S32の例として、ロボット10のセンサ15の計測範囲R内において、円柱形状を有する物体を基準点rfとした例が示されている。
【0048】
ステップS41~S49は、これらを囲む繰り返しステップS41,S49に形式的に示されるように、アクチュエータ16の各々(
図5の例であれば4つのアクチュエータA1,A2,A3,A4)と、それぞれの回転方向(正転または反転)との組み合わせを対象として全てが処理完了となるまで、内部の各ステップS42~S48が繰り返されるフロー構造を取る。アクチュエータ16が一般にn個存在する場合、この組み合わせの数は以下の通り、全n個の中からi個のアクチュエータを選択する組み合わせ数
nC
iと、選択したi個のアクチュエータについて正転または反転のいずれを選択するかの組み合わせ数2
iとの積の各i(i=1,2,…,n-1,n)についての総和となる。
【0049】
【0050】
図5のn=4の例であればこの組み合わせの各々は例えば以下の通りとなる。
アクチュエータA1を正転(→この例が
図6のEX3である。)
アクチュエータA1を反転
アクチュエータA2を正転
アクチュエータA2を反転
:
アクチュエータA1を正転 and アクチュエータA2を正転
アクチュエータA1を反転 and アクチュエータA2を正転
:
【0051】
この組み合わせを設ける意義は次の通りである。すなわち、前述のように、アクチュエータ16がn個存在する状況下で、移動機構17がどのように機械的に配置され、且つ、n個のアクチュエータ16のいずれが移動機構17のいずれを駆動するかが不明であるため、上記のような網羅的な組み合わせを用意して、組み合わせの各々についてロボット10を試運転させる必要がある。
【0052】
ステップS41ではアクチュエータ16(複数)の選択及び回転方向の選択の組み合わせのうち処理が未完了のものを処理対象に選択してから、ステップS42へと進む。
【0053】
ステップS42では、センサ15の出力を解析して極座標による基準点の位置(r0,θ0)を計測してから、ステップS43へと進む。当該計測は既存手法(非特許文献4)を用いて例えば以下の通り行うことができる。
[非特許文献4] ロボットの移動を考慮したLIDARの距離補正アルゴリズムの提案
【0054】
(1) LiDARの点群情報から基準点までの距離r0を計測する。
(2) ロボット10のローカル座標系を定義する。
Y軸:センサの取得範囲の中央を軸とし、レーザー光照射方向を正とする
X軸:Y軸と直行して右方向を正とする
(3)X軸との傾きθ0を計測する。
【0055】
ステップS43では、ロボット10の直交座標による初期位置(x0,y0)(後述するステップS45においてロボット10の移動を試運転として試みる前の初期位置)を算出してからステップS44へと進む。すなわち、ステップS42で得た基準点(r0,θ0)から見たロボット10の位置を把握するため、基準点(r0,θ0)を原点に置き換え、初期位置(x0,y0)を以下の数で算出することができる。
【0056】
【0057】
図6の例EX2は、以上のステップS42,S43より、基準点rfの極座標の位置(r
0,θ
0)を計測した結果からロボット10の直交座標での初期座標(x
0,y
0)を算出した例である。
【0058】
ステップS44では、ステップS41で選択したアクチュエータ16及びその回転方向の組み合わせについて、当該組み合わせで実際にアクチュエータ16へと駆動制御信号を入力すべく、対応する信号入力ポート等を選択してからステップS45へと進む。
【0059】
ステップS45では当該選択に従ってアクチュエータ16を一定量だけ駆動することでロボット10の試運転を試みてから、ステップS46へと進む。この駆動は、選択した回転方向(正転または反転)に対して、例えば1回転などの、一定量だけ駆動すればよい。(なお、アクチュエータ16が複数選択されている場合、複数の各々について対応する回転方向へと同時に駆動する。また、複数のうち選択されないアクチュエータ16は、動作せずに空転させるのみとしてよい。すなわち、選択されないアクチュエータ16については、ブレーキ(制動力)を作用させるような駆動制御が可能であったとしても、当該ブレーキ制御の信号入力は行わないようにしてよい。)
【0060】
ステップS46では、ステップS45での移動試行後の位置として、ロボット10の位置(x
1,y
1)を算出してから、ステップS47へと進む。この算出は、移動試行前のステップS42と同様にして移動試行後の基準点位置(r
1,θ
1)を算出し、さらに移動試行前のステップS43と同様にして以下の式により移動試行後のロボット10の位置(x
1,y
1)を算出することができる。
図6の例EX4は、この移動試行後の位置(x
1,y
1)を算出する例である。
【0061】
【0062】
ステップS47では、当該試行回数における動作を記録してから、ステップS48へと進む。例えば以下の形式で各情報を対応づけて、動作を記録すればよい。
・試行回数:k=1~ΣnCi×2i, (前述の通りi=1,2,…,n-1,nで和「Σ」を取る)
・初期位置:基準点及びロボット10の初期位置
・試運転後の位置:基準点及びロボット10の試運転後の位置
・各アクチュエータの駆動態様:
回転角度:例えば1回転等の固定値
回転方向:正転/反転/選択されていない場合は空回り
【0063】
当該動作の記録は例えば、既存手法であるJSON形式のデータとして記録することができる。
図8に、n=4の場合(
図5の例の構成の場合)におけるJSON形式での動作記録例を示す。
【0064】
ステップS48では、ステップS45で回転制御したアクチュエータ16について、ステップS45とは逆方向(正転であれば逆転、逆転であれば正転)に回転制御することで、ステップS45とは逆方向へのロボット10の移動を試みてから、ステップS49へと進む。(例えば、ステップS45でアクチュエータA1を正転方向に1回転させた場合、ステップS48では当該アクチュエータA1を逆転方向に1回転させる。)なお、ステップS48の意義は、ステップS45の移動試行でロボット10が実際に移動した際に、その都度、元の位置(ほぼ元の位置)に戻すようにすることで、種々の移動試行を継続して試みている間に元の位置から大きく離れて基準点となる物体等をセンサ15が見失う状態となったり移動試行で壁等の移動不可能な箇所に衝突等しうる状態(適切な移動試行ができない状態)となることを防止することにある。こうしたことの防止が不要な状況ではステップS48を省略してもよい。
【0065】
ステップS49では、ステップS41の組み合わせ(ΣnCi×2i通り)が全て選択済みであるか否かを判定し、全て選択済みで動作試行及びその記録が完了している場合にはステップS51へと進み、未完了のものがある場合はステップS41へと戻り、未完了の組み合わせについて処理を継続する。
【0066】
ステップS51では、以上の一連のステップS47での動作記録(ΣnCi×2i通りの全組み合わせの動作記録)の中から基本動作を選出してから、ステップS52へと進む。前述の通り、基本動作として例えばロボット10の前進、後退、右旋回及び左旋回の4種類を選定して定義している場合であれば、これら4種類の基本動作について、全ΣnCi×2i通りのアクチュエータ16の制御態様の中からそれぞれ最適なものを以下のように選出することができる。
【0067】
(1)…前進する基本動作の選択
(1A) 試行回数kにおけるロボット10の動作Mkを以下の2条件で判定し、前進の動作の候補を選択する。
・Y軸方向の距離が縮まっているかを以下の式で判定する。
y1-y0<0
・X軸方向の距離の変化が許容値thf(許容判定閾値)の範囲内にあるかを以下の式で判定する。
| x1-x0|<thf
なお、前掲の非特許文献1(路面環境地図に基づき系統誤差を校正するオドメトリ)に開示される知見の通り、前進に成功した場合もオドメトリの系統誤差が残るため、許容値thfとしては0に近い値を設定することが望ましい。
【0068】
(1B) 動作Mkの移動距離dkを以下の式で算出する。なお、上記(1A)の判定とこの距離計算とにより、移動機構17を構成する車輪におけるタイヤの直径や、アクチュエータ17の配置(及び移動機構17の各々に対する制御対象としての対応関係)が未知であっても、前進に対応する基本動作(を実現するアクチュエータ17の駆動方式)を絞り込むことができる。
【0069】
【0070】
(1C) 上記(1A)で候補を絞った動作Mkの中から、基本動作としての前進として最も効果のある動作を選択するため、以下の式で、移動距離が最も長い動作Mfを前進として選択する。
【0071】
【0072】
(2)…後退する基本動作の選択
(2A) 試行回数kにおけるロボット10の動作Mkを以下の2条件で判定し、後退の動作の候補を選択する。
・Y軸方向の距離が伸びているかを以下の式で判定する。(前進の場合とは逆判定)
y1-y0>0
・X軸方向の距離の変化が許容値thf(許容判定閾値)の範囲内にあるかを以下の式で判定する。(前進の場合と同一判定)
| x1-x0|<thf
【0073】
(2B) 動作Mkの移動距離dkを前進の場合の(1B)と同一の式で算出する。
【0074】
(2C) 上記(2A)で候補を絞った動作Mkの中から、(前進の場合と同様に、)基本動作としての後退として最も効果のある動作を選択するため、以下の式で、移動距離が最も長い動作Mbを後退として選択する。
【0075】
【0076】
図7の例EX5及びEX6はそれぞれ、以上の手法により最も効果があるとして選出された前進及び後退の動作例を示している。
【0077】
(3)…右旋回する基本動作の選択
(3A) 動作Mkにおけるロボット10の姿勢の変化量dθkを以下の式で算出する。
dθk=θ1-θ0
(3B) 、基本動作としての右旋回として最も効果のある動作を選択するため、以下の式で、ロボット10の姿勢の変化量dθk(右旋回が正に対応)が最も大きい動作Mrを右旋回として選択する。
【0078】
【0079】
(4)…左旋回する基本動作の選択
(4A) 動作Mkにおけるロボット10の姿勢の変化量dθkを右旋回の場合の(3A)と同一の式で算出する。
(4B) 、基本動作としての左旋回として最も効果のある動作を選択するため、以下の式で、ロボット10の姿勢の変化量dθk(右旋回が正に対応)が最も小さい動作Mlを左旋回として選択する。
【0080】
【0081】
図7の例EX7及びEX8はそれぞれ、以上の手法により最も効果があるとして選出された右旋回及び左旋回の動作例を示している。
【0082】
ステップS52では、以上のステップS51で選出された最適な基本動作の各々におけるロボット10の位置の変化量(直交座標(x,y)の各成分の変化量と、極座標(r,θ)の姿勢θの変化量)を以下のように算出してから、ステップS53へと進む。
【0083】
【0084】
ステップS53では、上記算出した各基本動作の変化量と、当該ロボット10へと各基本動作を行わせるための指示命令するための文字列(基本動作の内容を表す文字列)とを以下のように紐づけて、サーバ50へと送信し、サーバ50において保存する。
【0085】
【0086】
以上、本実施形態の動作獲得システム100によれば、ロボット10に関して、アクチュエータ16が複数、制御対象として存在しており、これよりも先の機械的な駆動機構である移動機構17の個別具体的な状況が不明であっても、網羅的な動作試行を行ってその結果の中から最適なものを選別することにより、ロボット10の基本動作に対応するアクチュエータ16の駆動の態様で自動で獲得することができる。従って、様々な現場等に様々なスペックのロボット10が存在する状況においても、ロボット10の個別のスペックに応じた制御方式を手作業で定義する手間なく、効果的に、ロボット10の制御管理を行うことが可能となる。
【0087】
以下、種々の補足的事項、追加的事項、代替的事項について説明する。
【0088】
(1) 本発明の以上の実施形態の応用的な利用として例えば次が可能である。すなわち、様々な現場に様々なスペックのロボット10が存在する状況において、予め共通のドングル30を配布しておいて各現場の担当者によりこのドングル30をロボット10に接続させるようにすることにより、プラットフォームとしてのサーバ50において統一的に、様々なロボット10を対象としてタスク実行させるように遠隔から制御することが可能となる。従って、各現場にカスタマイズされたタスクを実行させるためにその都度、各現場にロボット制御の技術者が出張してロボット10の制御をカスタマイズする等の移動の手間を省くことが可能となるため、人物の移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0089】
(2) 以上の実施形態では、ロボット10が例えば車両型ロボットに該当することのみが既知で、未知のアクチュエータ16(複数)及び移動機構17について、アクチュエータ16(複数)に車輪を駆動する個別のアクチュエータが含まれている前提で、網羅的な試行動作を試みた。ロボット10のスペックがある程度の範囲で予め絞られている場合は、この網羅的な試行動作を当該範囲に限定するようにしてもよい。例えばロボット10は車両型ロボットである場合、以上では網羅的に「k=1~ΣnCi×2i」の各回kの試行動作をi=1,2,…,nについて行ったが、さらに、車両型ロボットとしてのロボット10が三輪または四輪のいずれかのみであることが既知である場合には、試行動作をi=1,2,3,4等に限定するようにしてもよい。
【0090】
(3) 以上の
図2~
図4等の構成及びフローの実施形態では、自動動作獲得システム100においてロボット10の基本動作を獲得するために、ロボット10にドングル30を接続することをトリガとして様々な試行動作を行わせ、その結果を解析するという手段を用いた。別の実施形態として、ロボット10にドングル30を接続して試行動作を行わせることに代えて、ロボット10はフィールドF(例えば店舗や倉庫等)において当該フィールドFでの実際の様々なタスク(例えば物品の搬送など、以下、「実タスク」とする)を通常通りに行わせるようにし、この実タスクにおいて得られる動作ログを収集してサーバ50において解析することにより、ロボット10の基本動作を獲得するようにしてもよい。
【0091】
図9は、この別の実施形態に係る自動動作獲得システム100におけるロボット10(このロボット10はドングル30が接続されていてもよい)及びサーバ50の機能ブロック図であり、
図10は、この別の実施形態に係る自動動作獲得システム100の動作のフローチャートである。ロボット10(またはドングル30)は、ロボット10の動作ログを記憶する記憶部27を備え、サーバ50は、当該記憶された動作ログを取得して学習を行うことによりロボット10の基本動作を獲得する学習部28を備える。なお、
図9の実施形態においても、ロボット10及びサーバ50のハードウェア構成は
図2と共通であり、記憶部27はロボット10の第1ROM13(またはドングル30の第2ROM33)により、学習部28は対応する所定の学習プログラムを第3RAM53に読み込んで実行する第3プロセッサ51により、それぞれ実現することができる。以下、
図10の各ステップを説明する。
【0092】
なお、本実施形態で学習を利用することの意義や前提に関して以下が挙げられる。
<1> 動作ログは一般に膨大な量が存在するため、学習を行うことで、最適解として基本動作を獲得することができる。
<2> 過去に基本動作を既に獲得済みであるロボットと同一スペックのロボットを対象に、その動作ログを用いて学習するが、当該対象とされるロボット(動作ログを用いて学習するためのトリガとしてドングル30を接続していてもよい)の製造誤差(車輪の位置や直径などの若干の誤差)に伴う基本動作の差分を吸収するために、学習を利用することができる。
<3> 前提として、学習の対象となるロボットが移動する際(すなわち、動作ログが収集されている際)には、基本動作のいずれかのみを用いる。
【0093】
ステップS27では、ロボット10をフィールドFにおいて一定期間、実タスクを実行させ、その際の動作ログを記憶部27に収集して記憶した後、この動作ログをネットワークNWを介してサーバ50の学習部28へと送信してからステップS28へと進む。なお、動作ログの送受信は、ロボット10の第1通信IF14(またはドングル30の第2通信IF34)及びサーバ50の第3通信IF54が担う。なお、ステップS27における動作ログの収集及び送信、または、収集済みの動作ログのステップS27における送信は、ロボット10にドングル30が接続されることをトリガとして行われるものであってもよい。すなわち、ロボット10にドングル30が接続することをトリガとして、収集された動作ログがサーバ50に送信されることでサーバ50における学習(次のステップS28)が開始されるようにしてもよい。
【0094】
なお、
図9ではロボット10は1つのみであるが、複数のロボット10で動作ログを取得して、それらを全てサーバ50の学習部28へと送信するようにしてもよい。(この場合、複数のロボット10のスペックは同一とする。)
【0095】
なお、動作ログは、
図2~
図4の実施形態(これを第1実施形態とし、
図9,10(及び後述する
図11)の別の実施形態を第2実施形態とする)と同様の情報を含むものとして取得する。すなわち、第1実施形態の各回kでの試行動作を、実タスクの個別動作(アクチュエータ16に対する1回の制御命令の結果としての個別動作)に代えることで、以下のように紐づいた情報として動作ログL={Log(k)|k=1,2,3,…}を取得する。
・個別動作:k=1,2,3,…
・この個別動作の前の初期位置:基準点及びロボット10の初期位置
・この個別動作の後の位置:基準点及びロボット10の当該個別動作後の位置
・各アクチュエータの駆動態様:
回転角度:例えば1回転等の固定値
回転方向:正転/反転/選択されていない場合は空回り
【0096】
ステップS28では、ステップS27で上記の通り収集された動作ログLを用いて学習部28が学習を行うことにより、基本動作を獲得して、
図10のフローは終了する。動作ログLは一般に膨大な量が存在するため、学習を行うことで、最適解として基本動作を獲得することができる。なお、動作ログLに対して第1実施形態と同様の処理(基本動作選出部25と同様の処理)を施すことでルールベースにより基本動作を獲得するようにしてもよい。
図11は、一実施形態に係る学習部28による学習の詳細(すなわち、
図10のステップS28の詳細)を示すフローチャートである。以下、
図11の各ステップを説明する。なお、
図11の各ステップS281~S285に関して、その動作主体は学習部28(所定の学習プログラムを実行することで学習部28を実現するサーバ50の第3プロセッサ51)であるため、この動作主体について言及することは省略し、各ステップでの処理内容のみを説明する。
【0097】
なお、説明例として、学習の対象となるロボット10のスペック及び基本動作は、第1実施形態での説明例と同様であるものとする。すなわち、学習の対象となるロボット10は
図5のように四輪の車両型ロボットであって、基本動作は前進、後退、右旋回及び左旋回の4つであるものとする。
【0098】
ステップS281では、動作ログL(
図10のステップS27で収集した動作ログL)から変化量を算出して、ステップS282へと進む。具体的に、各回k=1,2,3,…での個別の動作ログLog(k)より、当該k回目のロボット10の動作の変化量d Log(k)を以下のように算出する。(なお前述の通り、第1、第2実施形態では共通の説明例であるため、以降の説明における各変数についても、数2~数10の数式や
図6,7で第1実施形態に関して説明したのと共通である。すなわち、新たに現れる変数は、既に説明済みの変数から定義されるものとなる。)
【0099】
【0100】
なお、このステップS281の段階では、動作ログがどの基本動作に属するか不明であるため、上記の通り、全ての変数についての変化量dx,dy,dθを算出する。
【0101】
ステップS282では、動作ログLの変化量d Log(k)を教師なし学習によりクラスタリングし、各クラスタのクラスタ中心を求めてから、ステップS283へと進む。クラスタリングを実現する教師なし学習としては例えばk-means法(k平均法)等を用いればよい。事前にクラスタ数を設定する必要がある場合は設定してよい。例えば当該説明例では基本動作が4つであるため、クラスタ数も4を設定してよい。k-means法で適切なクラスタリング結果を得るために任意の既存手法を用いてよく、例えば以下の非特許文献5の手法で初期値を設定してもよい。
[非特許文献5] 小野田崇; 坂井美帆; 山田誠二. 初期値設定法の違いによる k-means 法の性能比較. : 日本知能情報ファジィ学会 ファジィ システム シンポジウム 講演論文集 第 27 回ファジィシステムシンポジウム. 日本知能情報ファジィ学会, 2011. p. 55-55.
【0102】
クラスタリング結果の各クラスタをCi(i=1,2,…)とする(当該説明例では4つのクラスタC1,C2,C3,C4)と、そのクラスタ中心dLCiを以下のように算出することができる。|Ci|はクラスタCiの要素数である。
【0103】
【0104】
ステップS283では、各クラスタC
iと基本動作(基本動作のテンプレートとして予め用意しておく)とをマッチングしてから、ステップS284へと進む。具体的に、テンプレートとして予め定義されている基本動作と、各クラスタC
iのクラスタ中心dL
Ciとをユークリッド距離でマッチングする。当該説明例においては、基本動作のテンプレートとしては、同一スペックのロボットに関して予め第1実施形態を適用して
図4のステップS53において、獲得されている基本動作M
f,M
b,M
r,M
lよりその変化量dM
f,dM
b,dM
r,dM
lがテンプレートとして求まっているため、各クラスタ中心dL
Ci (i=1,2,3,4)と以下のようにマッチングすることができる。
【0105】
【0106】
当該説明例では以下のように、4つの各クラスタと各基本動作とがマッチングされたものとする。
【0107】
【0108】
ステップS284では、基本動作と上記マッチングされた各クラスタ内で、変化量が最大となる動作ログを選出してから、ステップS285へと進む。当該説明例では以下のように選出することができる。
【0109】
【0110】
なお、上記説明例での選出の手法は、前述の第1実施形態において説明した、最も効果的な動作を選択する手法と同様である。(数11の定義よりdy
k= y
1-y
0であり、例えば前進は(1A)として前述の通り「y
1-y
0<0」(すなわちdy
k <0)となってY軸方向が縮まる方向であり、負の値としてのdy
kが最小となる場合が、最も大きい距離で前進することに対応する。一方、後退はこの逆であり、(2A)として前述の通り、正の値としてのdy
kが最大となる場合が、最も大きい距離で後退することに対応する。)すなわち、予め用意するテンプレート(各基本動作の定義と、各基本動作での変化量(ロボット10の移動)とを与えたテンプレートとして、
図4のステップS53で出力される情報で構成されるもの)に即して最適とされる基本動作を、この第2実施形態のステップS284において選出すればよい。(すなわち、第2実施形態でのステップS284での選別は、各クラスタC
iの動作ログを対象として、第1実施形態の基本動作選出部25の処理と同様にして選別してよい。)例えば、当該説明例において、前進及び後退に関して、x軸方向の移動がない動作を選出する場合は、第1実施形態と同様に、許容値による判定(前述の許容値th
f(許容判定閾値)の範囲内にあることの判定)も追加することで、選別対象を絞り込むようにしてもよい。
【0111】
ステップS285では、上記のステップS284で選出した変化量が最大となる動作ログを基本動作として保存し、当該
図11のフローを終了する。すなわち、このステップS285での結果出力及びその保存は、
図4のステップS53におけるのと(形式上)同様であり、動作ログの変化量と、ロボット10へ指示命令するための文字列とを紐づけて保存する。当該説明例では以下のように、4つの基本動作に関して保存する。
【0112】
【0113】
(4) 以上の通り、あるロボット10Aについて、第1実施形態を実施してその基本動作に関する情報を取得し、このロボット10Aと共通スペックの別のロボット10Bについて、第2実施形態を実施して、その動作ログから基本動作を実現する最適な制御命令を学習するようにしてよい。
【0114】
なお、例として、ロボット10A,10Bについて共に、
図5のような四輪の車両型ロボットであり、ロボット10Aについては四輪W1,W2,W3,W4のタイヤサイズが全て等しい(例えば半径r)であり、ロボット10Bについては共通スペック(共通配置のアクチュエータA1,A2,A3,A4)であるが、管理者が使用環境に適した設定としてタイヤを取り換える等で左右の前輪側W1,W2がやや大きく(例えば半径1.2r)、左右の後輪側W3,W4がやや小さい(例えば半径0.8r)といった場合に、基本動作としての前進、後退、右旋回、左旋回を実現する最適な制御態様が、ロボット10A,10Bで異なるものとなる場合がありうる。移動機構がさらに複雑な場合(例えば六輪、八輪といった車両型ロボットの場合)はより一層、共通スペックのロボット10A,10B同士であっても基本動作を実現するための最適な制御態様が異なる場合がありうることが想定される。本発明の第1、第2実施形態により、このような場合にも対処することができる。
【符号の説明】
【0115】
100…自動動作獲得システム、10…ロボット、30…ドングル、50…サーバ、20…制御部、21…準備部、22…基本動作獲得部、27…記憶部、28…学習部