(57)【要約】【課題】より高いロバスト安定性およびメンテナンス性を有する制御装置、制御方法、およびプログラムを提供すること。【解決手段】実施形態の制御装置は、第１のプロセッサと第２のプロセッサを少なくとも含む２以上のプロセッサを持つ。制御装置は、認識装置から受信する認識結果に基づいて、１以上の自律動作機構を制御する。制御装置の記憶装置には、上位ソフトウェアと中位ソフトウェアと下位ソフトウェアとが格納される。上位ソフトウェアは認識結果の特徴を表す特徴量を導出する。中位ソフトウェアは特徴量に基づいて自律動作機構の動作計画を生成する。下位ソフトウェアは動作計画に基づいて自律動作機構を制御する指令値を出力する。第１のプロセッサは少なくとも上位ソフトウェアを、第２のプロセッサは少なくとも下位ソフトウェアを、制御装置が備える少なくとも一つのプロセッサは中位ソフトウェアを実行する。【選択図】図１
2020025992.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと第２のプロセッサを少なくとも含む２以上のプロセッサを備え、認識装置から受信する認識結果に基づいて、１以上の自律動作機構を制御する制御装置であって、
前記認識結果の特徴を表す特徴量を導出する上位ソフトウェアと、
前記特徴量に基づいて、前記自律動作機構の動作計画を生成する中位ソフトウェアと、
前記動作計画に基づいて前記自律動作機構を制御する指令値を出力する下位ソフトウェアと、を記憶装置に格納し、
前記第１のプロセッサは、
少なくとも前記上位ソフトウェアを実行し、
前記第２のプロセッサは、
少なくとも前記下位ソフトウェアを実行し、
前記制御装置が備える少なくとも一つのプロセッサは、
前記中位ソフトウェアを実行する、
制御装置。
【請求項２】
前記自律動作機構を制御するロボットコントローラを制御する、
請求項１に記載の制御装置。
【請求項３】
前記下位ソフトウェアは、前記第２のプロセッサを、
前記動作計画に基づいて、前記自律動作機構を制御する下位の指令値を出力する指令値生成部と、
前記ロボットコントローラが前記認識結果に基づいて前記動作計画を作成した後、前記認識装置から新たに認識結果を受信した場合に、前記指令値生成部に、前記指令値とは異なる修正指令値を生成させるか否かを判定し、判定結果に基づいて制御する制御部と、
前記制御部による制御指令に基づいて、前記修正指令値を生成する修正指令値生成部と、として機能させる、
請求項２記載の制御装置。
【請求項４】
前記上位ソフトウェアは、前記第１のプロセッサを、
前記認識結果を受け付ける受付部と、
前記認識結果に基づいて、前記認識結果の特徴量を導出する特徴量導出部と、として機能させ、
前記中位ソフトウェアは、前記少なくとも一つのプロセッサを、
前記特徴量に基づいて前記自律動作機構の動作計画を生成する動作計画部として機能させる、
請求項３記載の制御装置。
【請求項５】
前記中位ソフトウェアは、前記制御装置が備える少なくとも一つのプロセッサを、
前記認識結果および前記動作計画の一部または全部を記憶して学習する動作学習部と、としてさらに機能させる、
請求項４に記載の制御装置。
【請求項６】
前記自律動作機構が把持部材を備える場合、
前記中位ソフトウェアは、前記制御装置が備える少なくとも一つのプロセッサを、
前記認識結果に基づいて、前記自律動作機構に行わせる前記把持部材に行わせる把持動作の計画を生成する把持計画生成部と、
前記把持計画生成部によって生成された前記把持動作の計画を記憶し、学習する把持計画学習部と、としてさらに機能させる、
請求項４または５に記載の制御装置。
【請求項７】
前記上位ソフトウェアは、前記第１のプロセッサを、
前記上位ソフトウェアが実行されることで、
少なくとも前記ロボットコントローラの処理結果、および前記修正指令値生成部の生成する前記修正指令値の生成結果の記録を出力するログ処理部と、
前記ログ処理部によって出力された前記記録を記憶するログ記憶部と、としてさらに機能させる、
請求項４から６のいずれか１項に記載の制御装置。
【請求項８】
前記上位ソフトウェアは、前記第１のプロセッサを、
前記特徴量導出部によって、前記認識装置から受信する前記認識結果の出力様式の変更を緩衝する、ように機能させる、
請求項４から７のいずれか１項に記載の制御装置。
【請求項９】
第１のプロセッサと第２のプロセッサを少なくとも含む２以上のプロセッサを備え、認識装置から受信する認識結果に基づいて、１以上の自律動作機構を制御する制御装置であって、上位ソフトウェアと、中位ソフトウェアと、下位ソフトウェアとを記憶装置に格納した制御装置による前記自律動作機構の制御方法であって、
前記第１のプロセッサが、前記上位ソフトウェアを実行することにより、前記認識結果の特徴を表す特徴量を導出し、
前記制御装置が備える少なくとも一つのプロセッサが、前記中位ソフトウェアを実行することにより、前記特徴量に基づいて、前記自律動作機構の動作計画を生成し、
前記第２のプロセッサが、前記下位ソフトウェアを実行することにより、前記動作計画に基づいて前記自律動作機構を制御する指令値を出力する、
制御方法。
【請求項１０】
第１のプロセッサと第２のプロセッサを少なくとも含む２以上のプロセッサを備え、認識装置から受信する認識結果に基づいて、１以上の自律動作機構を制御する制御装置において実行されるプログラムであって、
前記第１のプロセッサにより実行され、前記認識結果の特徴を表す特徴量を導出する上位プログラムと、
前記制御装置が備える少なくとも一つのプロセッサにより実行され、前記特徴量に基づいて、前記自律動作機構の動作計画を生成する中位プログラムと、
前記第２のプロセッサにより実行され、前記動作計画に基づいて前記自律動作機構を制御する指令値を出力する下位プログラムと、を含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
外部認識装置による認識結果（例えば、カメラで撮影した画像情報やセンサによるセンシング結果）に基づいてロボットの位置姿勢等を制御する汎用コントローラが、ロボットメーカ等により提供されている。この汎用コントローラは、画像認識結果やセンシング結果等から得られるフィードバック情報の入力を、固定された時間周期（例えば、３０［ミリ秒］）でのみ受け付けることが多い。
【０００３】
このような汎用コントローラでは、外部認識装置によるフィードバック情報がより高頻度で出力されるように性能向上した場合であっても、汎用コントローラが外部認識装置による認識結果を受け付ける時間周期を変えることができない場合があった。その場合、よりリアルタイム性が要求される場面において、汎用コントローラがロボットに出力する指令値に、最新の認識結果やセンシング結果を速やかに反映させることができない場合があった。この結果、外部認識装置の高頻度フィードバック情報を、柔軟に反映することによる制御安定性が得られない場合があった。更に、従来の汎用コントローラでは、互換性などの問題でソフトウェアの改変が困難であるため、メンテナンス性が十分でない場合もあった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、より高いロバスト安定性およびメンテナンス性を実現する制御装置、制御方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の制御装置は、第１のプロセッサと第２のプロセッサを少なくとも含む２以上のプロセッサを持つ。制御装置は、認識装置から受信する認識結果に基づいて、１以上の自律動作機構を制御する。制御装置の記憶装置には、上位ソフトウェアと、中位ソフトウェアと、下位ソフトウェアとが格納される。上位ソフトウェアは、前記認識結果の特徴を表す特徴量を導出する。中位ソフトウェアは、前記特徴量に基づいて、前記自律動作機構の動作計画を生成する。下位ソフトウェアは、前記動作計画に基づいて前記自律動作機構を制御する指令値を出力する。前記第１のプロセッサは、少なくとも前記上位ソフトウェアを実行し、前記第２のプロセッサは、少なくとも前記下位ソフトウェアを実行し、前記制御装置が備える前記少なくとも一つのプロセッサは、前記中位ソフトウェアを実行する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態の制御装置１００の利用環境を示す概要図。
【図２】第１の実施形態の制御システム１の構成の一例を示すブロック図。
【図３】従来の制御システム１Ｚの構成の一例を示すブロック図。
【図４】制御システム１の処理の流れの一例を示すフローチャート。
【図５】特徴量導出処理の流れの一例を示すフローチャート。
【図６】第２の実施形態の制御システム１Ａの構成の一例を示すブロック図。
【図７】制御システム１Ａの処理の流れの一例を示すフローチャート。
【図８】制御システム１Ａにおける特徴量導出処理、および動作計画学習処理の流れの一例を示すフローチャート。
【図９】第３の実施形態の制御システム１Ｂの構成の一例を示すブロック図。
【図１０】制御システム１Ｂの処理の流れの一例を示すフローチャート。
【図１１】制御システム１Ｂにおける特徴量導出処理、および動作計画学習処理の流れの一例を示すフローチャート。
【図１２】第４の実施形態の制御システム１Ｃの構成の一例を示すブロック図。
【図１３】制御システム１Ｃのログ記憶部８００のログ収集処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施形態の制御装置、制御方法、およびプログラムを、図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態の制御装置１００の利用環境を示す概要図である。以下では、制御装置１００が制御する自律動作機構がロボットアーム装置６００である例を用いて説明する。
【０００９】
ロボットアーム装置６００は、例えば、制御装置１００と、ＯＳＳ（Open Source Software）活用プラットフォーム２００と、ＯＳ（Operating System）３００と、ロボットコントローラ４００と、サーボアンプ５００とが協働することで制御される。制御装置１００と、ＯＳＳ活用プラットフォーム２００と、ＯＳ３００とは、少なくとも１つのプロセッサ（例えば、中央演算制御装置、ＣＰＵ（Central Processing Unit））が実行可能となるようにメモリに展開されるものである。ロボットコントローラ４００は、ＯＳＳ活用プラットフォーム２００およびＯＳ３００と同一の装置に論理的に展開されてもよいし、ＯＳＳ活用プラットフォーム２００およびＯＳ３００とは異なる装置で論理的に展開されてもよい。
【００１０】
制御装置１００は、例えば、ＯＳＳ活用プラットフォーム２００に対し、ＡＰＩ（Application Programming Interface）層を介してロボットの指令値を生成する下位ソフトウェア（下位プログラム）と、下位ソフトウェアと比較してより上位のレイヤに該当し、制御対象のロボットの動作計画スクリプト等を生成する中位ソフトウェア（中位プログラム）と、中位ソフトウェアと比較してより上位のレイヤに該当し、外部認識装置の認識結果から特徴量等を導出する上位ソフトウェア（上位プログラム）とを記憶装置に格納している。
【００１１】
例えば、ロボットアーム装置６００にＡ地点に対象物Ｂを移動させるという命令を実行する場面において、制御装置１００の上位ソフトウェアは、カメラ等の認識装置が、Ａ地点や対象物を認識した認識結果から特徴量を導出して中位ソフトウェアに出力する。中位ソフトウェアは、上位ソフトウェアにより出力された特徴量に基づいて、ロボットアーム装置６００がＡ地点に対象物Ｂを移動させるまでの軌道等の計画を生成する。軌道等の計画には、ロボットアーム装置６００の移動速度、ロボットアーム装置６００の関節パーツがとる角度、ロボットアーム装置６００の把持部材（ハンド）を対象物Ｂに接触させる位置や、把持部材が対象物Ｂに加える圧力量などが含まれる。中位ソフトウェアは生成した動作計画を、動作計画スクリプトとして下位ソフトウェアに出力する。下位ソフトウェアは、中位ソフトウェアにより出力された動作計画スクリプトに基づいて、ロボットアーム装置６００の各パーツの詳細な動作指令値を生成する。制御装置１００は、上位ソフトウェア、中位ソフトウェア、および下位ソフトウェアによってＯＳＳ活用プラットフォーム２００およびロボットコントローラ４００への出力指令を補完する。
【００１２】
ＯＳＳ活用プラットフォーム２００は、例えば、ＲＯＳ（Robot Operating System；ロボット専用ＯＳ）のような、ＯＳ３００上で実行できる自律制御ロボット用プログラミング向けの汎用ミドルウェアである。ＯＳＳ活用プラットフォーム２００は、ロボットアーム装置６００の動作指令の元情報を生成し、ロボットコントローラ４００にＯＳ３００のイーサネット（Ethernet；登録商標）規格で出力する。動作指令の元情報とは、例えば、カメラ等の外部認識装置（不図示）の認識結果や、認識結果から導出される特徴量である。ＯＳ３００は、例えば、Ｌｉｎｕｘ（登録商標）である。
【００１３】
ロボットコントローラ４００は、ＯＳＳ活用プラットフォーム２００により出力された動作指令の元情報に基づいて、動作指令値を生成する。ロボットコントローラ４００は、例えば、生成した動作指令値をロボットアーム装置６００に、イーサキャット（EtherCAT［Ethernet for Control Automation Technology］；産業用オープンネットワーク；登録商標）規格で出力する。また、ロボットコントローラ４００は、生成した動作指令値をロボットアーム装置６００に、ロボットアーム装置６００の製造メーカの規定する通信規格（またはアナログ出力）で出力してもよい。ロボットコントローラ４００は、例えば、ロボットアーム装置６００の製造メーカ等によって提供され、製造メーカの推奨する（または保証する）生成法則に則った軌道が生成される。
【００１４】
図２は、第１の実施形態の制御システム１の構成の一例を示すブロック図である。制御システム１は、例えば、カメラＥＭ１と、力覚センサＥＭ２と、接触センサＥＭ３と、アンプＥＭ４と、センシング情報処理部２１０と、一対以上のロボットコントローラ４００およびロボットアーム装置６００とを備える。
【００１５】
カメラＥＭ１は、例えば、ロボットアーム装置６００の把持対象物（例えば、ロボットアーム装置６００がピッキングする荷物）を画像認識する。カメラＥＭ１は、把持対象物を俯瞰的に認識できる位置に配置されてもよいし、ロボットアーム装置６００の把持部材周辺等の把持対象物を近距離で捉えることができる位置に配置されてもよい。カメラＥＭ１は、認識結果（撮像データ）をセンシング情報処理部２１０に出力する。また、力覚センサＥＭ２は、ロボットアーム装置６００の把持部材の先端に設置され、ロボットアーム装置６００が把持対象物に与える押し込み力成分およびモーメント成分を６軸で認識する。力覚センサＥＭ２は、カメラＥＭ１と同様に、認識結果をセンシング情報処理部２１０に出力する。また、接触センサＥＭ３は、ロボットアーム装置６００の把持部材の先端等に設置され、接触覚を認識する。接触センサＥＭ３は、認識結果をアンプＥＭ４に出力する。アンプＥＭ４は、接触センサＥＭ３によって出力された認識結果に基づいて把持対象物との接触認識結果を生成し、センシング情報処理部２１０に出力する。アンプＥＭ４は、例えば、ローパスフィルタの機能を有する。アンプＥＭ４は、接触センサＥＭ３の認識結果からノイズを除去して認識結果を増幅する等の処理を行って、接触認識結果を生成する。カメラＥＭ１、力覚センサＥＭ２、およびアンプＥＭ４はそれぞれ所定の時間間隔で動作する。
【００１６】
センシング情報処理部２１０は、例えば、画像取込部２１２と、画像特徴量導出部２１４と、通信部２１６と、力覚信号処理部２１８と、力覚特徴量導出部２２０と、接触信号処理部２２２と、接触特徴量導出部２２４とを備える。これらの機能部は、図１に示したＯＳＳ活用プラットフォーム２００上で実行される上位ソフトウェアにより実現される。画像取込部２１２と、力覚信号処理部２１８と、接触信号処理部２２２は、「受付部」の一例である。
【００１７】
画像取込部２１２は、カメラＥＭ１により出力された認識結果を取り込み、画像特徴量導出部２１４に出力する。画像取込部２１２は、カメラＥＭ１の認識結果である撮像データの一部を選択して画像特徴量導出部２１４に出力してもよいし、撮像データの全てを画像特徴量導出部２１４に出力してもよい。画像特徴量導出部２１４は、画像取込部２１２により出力された認識結果に基づいて、画像特徴量を導出する。画像特徴量とは、カメラＥＭ１によって撮像された撮像データから導出される把持対象物の特徴を表現する量である。画像特徴量は、例えば、把持対象物の画像上の略中心位置、色分布、輝度勾配パターン分布等を数値化あるいはベクトル化したものである。画像特徴量導出部２１４は、導出した画像特徴量を通信部２１６に出力する。
【００１８】
力覚信号処理部２１８は、力覚センサＥＭ２により出力された認識結果を受け付け、その一部または全部を力覚特徴量導出部２２０に出力する。力覚特徴量導出部２２０は、力覚信号処理部２１８により出力された認識結果に基づいて、力覚特徴量を導出する。力覚特徴量とは、力覚センサＥＭ２の位置および力覚センサＥＭ２の検出する力等を数値化あるいはベクトル化したものである。力覚特徴量導出部２２０は、導出した力覚特徴量を通信部２１６に出力する。
【００１９】
接触信号処理部２２２は、アンプＥＭ４により出力された接触認識結果を受け付け、その一部または全部を接触特徴量導出部２２４に出力する。接触特徴量導出部２２４は、接触信号処理部２２２により出力された接触認識結果に基づいて、接触特徴量を導出する。接触特徴量とは、接触センサＥＭ３によりセンシングされた認識結果を数値化したものである。接触特徴量導出部２２４は、導出した接触特徴量を通信部２１６に出力する。
【００２０】
通信部２１６は、画像特徴量導出部２１４により出力された画像特徴量、力覚特徴量導出部２２０により出力された力覚特徴量、および接触特徴量導出部２２４により出力された接触特徴量をロボットコントローラ４００に出力する。通信部２１６は、画像特徴量、力覚特徴量および接触特徴量をひとまとめにしてロボットコントローラ４００に出力してもよいし、それぞれの特徴量を受信する都度、ロボットコントローラ４００に出力してもよい。通信部２１６からロボットコントローラ４００への通信は、例えば、ＯＳ３００を介したイーサネットや、ＯＳＳ活用プラットフォーム２００によって提供されるＡＰＩで行われる。
【００２１】
ロボットコントローラ４００は、例えば、通信部４０２と、動作指令生成部４０４と、目標軌道生成部４０６と、モータ指令値生成部４０８と、モータ制御演算部４１０とを備える。また、ロボットコントローラ４００は、判定部４１２と、修正指令値生成部４１４とを備える。モータ指令値生成部４０８は、「指令値生成部」の一例であり、判定部４１２は、「制御部」の一例である。
【００２２】
通信部４０２は、センシング情報処理部２１０により送信された画像特徴量、力覚特徴量および接触特徴量を受信し、動作指令生成部４０４または修正指令値生成部４１４に出力する。動作指令生成部４０４は、通信部４０２により出力された画像特徴量、力覚特徴量および接触特徴量に基づいて、ロボットアーム装置６００の動作指令を生成する。動作指令とは、例えば、ロボットアーム装置６００全体で実現する動作スクリプトである。動作スクリプトには、目標点の３軸座標の情報を含む。
【００２３】
動作指令生成部４０４は、目標軌道生成部４０６に生成した動作指令を出力する。目標軌道生成部４０６は、動作指令生成部４０４により出力された動作指令に基づいて、ロボットアーム装置６００の代表点（例えば、ロボットアーム装置６００の先端部分や、関節部分）の目標軌道を生成する。目標軌道は、例えば、ロボットアーム装置６００が通過する軌道が障害物を避ける軌道となるよう設定される。
【００２４】
目標軌道生成部４０６は、生成した目標軌道をモータ指令値生成部４０８に出力する。モータ指令値生成部４０８は、目標軌道生成部４０６により出力された目標軌道に基づいて、目標軌道に追従するように、各モータの指令値（下位の指令値の一例）をそれぞれ生成する。モータ指令値生成部４０８の生成する各モータの指令値は、例えば、位置または速度に関する指令を含む。モータ指令値生成部４０８は、生成した指令値をロボットアーム装置６００に出力する。モータ指令値生成部４０８は、例えば、所定の間隔で指令値を出力する。
【００２５】
判定部４１２は、修正指令値を生成するか否かを判定する。判定部４１２は、例えば、動作指令生成部４０４が動作指令を生成した後であって、モータ指令値生成部４０８により生成された各モータの指令値がロボットアーム装置６００に出力されていない場合に、修正指令値を生成すると判定し、修正指令値生成部４１４に修正指令値の生成に関する制御指令を出力する。修正指令値生成部４１４により生成される修正指令値は、修正方向や修正量を示す情報であってもよいし、元の情報（動作指令や目標軌道）を置換するための情報であってもよい。後者の場合、修正指令値生成部４１４は、動作指令の修正指令値を生成した場合、目標軌道生成部４０６に修正指令値を出力し、出力済の指令値を修正指令値に置換させる。また、修正指令値生成部４１４は、目標軌道の修正指令値を生成した場合、モータ指令値生成部４０８に修正指令値を出力し、出力済の指令値を修正指令値に置換させる。
【００２６】
目標軌道生成部４０６は、修正指令値生成部４１４により修正指令値が出力された場合、修正指令値に基づいて目標軌道を修正し、モータ指令値生成部４０８に出力する。モータ指令値生成部４０８は、修正された目標軌道に基づいてモータ指令値を修正し、モータ制御演算部４１０に出力する。モータ制御演算部４１０は、修正されたモータ指令値に基づいてロボットアーム装置６００を制御する指令値を出力する。なお、モータ指令値生成部４０８に修正指令値生成部４１４により修正指令値を出力された場合にも、同様に修正指令値に基づいてロボットアーム装置６００が制御される。モータ制御演算部４１０からロボットアーム装置６００への通信は、例えば、ＯＳ３００を介したイーサネットや、ＯＳＳ活用プラットフォーム２００によって提供されるＡＰＩで行われたり、ロボットアーム装置６００の製造メーカの規定する通信規格で行われたりしてもよいが、イーサキャット規格で出力することが望ましい。
【００２７】
なお、判定部４１２は、ロボットコントローラ４００によりロボットアーム装置６００に各種指令値を出力するタイミングに応じて、修正指令値の生成要否を判定する。例えば、判定部４１２は、動作指令生成部４０４が動作指令を生成していない場合には修正指令値を生成する処理を行わない。動作指令生成部４０４および目標軌道生成部４０６により生成される各種指令値と同一の指令値を出力することになるためである。
【００２８】
ロボットアーム装置６００は、例えば、モータ６０２とエンコーダ６０４とを備える。モータ６０２は、ロボットコントローラ４００により送信された指令値に基づいて動作する。エンコーダ６０４は、モータ６０２の位置・速度・角度等のフィードバック情報を、モータ制御演算部４１０に出力する。エンコーダ６０４は、フィードバック情報として、例えば、パルス波（Ａ相、Ｂ相、場合によってはＺ相）をパラレルに伝送する。また、エンコーダ６０４は、シリアル伝送方式を用いてフィードバック情報を伝送してもよい。
【００２９】
なお、図２ではモータ制御演算部４１０がロボットコントローラ４００の構成要素である例を示したが、ロボットコントローラ４００のドライバとして構成されてもよい。モータ制御演算部４１０がドライバとして構成される例については、図６を用いて後述する。
【００３０】
ここで、比較例との比較について説明する。図３は、比較例の制御システム１Ｚの構成の一例を示すブロック図である。なお、以下の説明において、第１の実施形態の制御装置１００で説明した内容と同様の機能を有する部分については、同様の名称および符号を付するものとし、その機能に関する具体的な説明は省略する。
【００３１】
図３に示す制御システム１Ｚは、図２に示す第１の実施形態の制御システム１の判定部４１２および修正指令値生成部４１４が省略されたものである。このため、カメラＥＭ１等の認識装置から認識結果を受信し、センシング情報処理部２１０によって最新の認識結果がロボットコントローラ４００に送信された場合であっても、ロボットコントローラ４００はすでに生成した各種指令値に最新の認識結果を反映させることはできない。
【００３２】
これに対し、図２に示す第１の実施形態の制御システム１は、最新の認識結果に基づいて把持対象物の動きを追従し、各種指令値を修正することができる。これにより制御システム１は、従来の制御システム１Ｚと比較して、より高いロバスト安定性を実現することができる。また、ＯＳＳ活用プラットフォーム２００やＯＳ３００、外部認識装置ＥＭ１〜ＥＭ３のソフトウェア等のアップデートなどがあった場合に、そのアップデートを適用した結果、認識結果の出力様式の変更があっても、各種指令値を修正する機能への影響を最小にとどめることができる。このため、高いメンテナンス性を実現することができる。
【００３３】
例えば、画像取込部２１２は、カメラＥＭ１の製造メーカによって提供されるソフトウェアにより実現される場合に、画像取込部２１２を実現するソフトウェアがアップデートされ、画像取込部２１２の出力様式や出力頻度が変更される可能性がある。そのような場合に、制御装置１００は、画像特徴量導出部２１４によって画像取込部２１２の出力様式や出力頻度の変更に柔軟に対応し、変更に応じた特徴量導出を行ってもよい。また制御装置１００は、画像特徴量導出部２１４によって画像取込部２１２の出力様式や出力頻度を変更前の様式に加工することで緩衝し、ソフトウェアのアップデート前と同様の特徴量導出を行ってもよい。これにより制御システム１は、従来の制御システム１Ｚと比較して、高いメンテナンス性を実現することができる。
【００３４】
図４は、制御システム１の処理の流れの一例を示すフローチャートである。図４に示すフローチャートは、例えば、ロボットコントローラ４００によってロボットアーム装置６００に指令値が出力される所定の時間間隔と同一、またはその時間間隔よりも短い時間間隔を周期として繰り返し実行される。
【００３５】
センシング情報処理部２１０は、外部認識装置により出力された認識結果に基づいて、特徴量を導出する（ステップＳ１００）。詳細は図５を用いて後述する。次に、ロボットコントローラ４００は、前述した各種指令値を生成する（ステップＳ１０２）。次に、判定部４１２は、ロボットアーム装置６００に指令値を出力するタイミングであるか否かを判定する（ステップＳ１０４）。ロボットコントローラ４００は、出力するタイミングであると判定された場合、生成済の指令値をロボットアーム装置６００に出力する（ステップＳ１０６）。
【００３６】
ステップＳ１０４において出力するタイミングでないと判定された場合、ロボットコントローラ４００は、修正指令値生成部４１４による修正指令値の生成のため、新たな認識結果に基づく各種特徴量を受け付ける（ステップＳ１０８）。次に、修正指令値生成部４１４は、修正指令値を生成して目標軌道生成部４０６および／またはモータ指令値生成部４０８に出力して出力済の指令値と置換させ（ステップＳ１１０）、ステップＳ１０４に処理を戻す。以上、本フローチャートの処理を終了する。
【００３７】
図５は、図４のフローチャートのステップＳ１００およびＳ１０８の特徴量導出処理の流れの一例を示すフローチャートである。なお、以下に示すステップＳ２００、Ｓ２０４およびＳ２０８は同時に行われてもよいし、それぞれ独立したタイミングで行われてもよい。
【００３８】
画像取込部２１２は、カメラＥＭ１によって出力された撮像データを受信し、画像特徴量導出部２１４に出力する（ステップＳ２００）。次に、画像特徴量導出部２１４は、画像取込部２１２により出力された撮像データに基づいて画像特徴量を導出して通信部２１６を介してロボットコントローラ４００に出力する（ステップＳ２０２）。
【００３９】
力覚信号処理部２１８は、力覚センサＥＭ２によって出力された認識結果を受信し、力覚特徴量導出部２２０に出力する（ステップＳ２０４）。次に、力覚特徴量導出部２２０は、力覚信号処理部２１８によって出力された認識結果に基づいて力覚特徴量を導出して通信部２１６を介してロボットコントローラ４００に出力する（ステップＳ２０６）。
【００４０】
接触信号処理部２２２は、アンプＥＭ４によって出力された接触認識結果を受信し、接触特徴量導出部２２４に出力する（ステップＳ２０８）。次に、接触特徴量導出部２２４は、接触信号処理部２２２によって出力された認識結果に基づいて接触特徴量を導出して通信部２１６を介してロボットコントローラ４００に出力する（ステップＳ２１０）。以上、本フローチャートの処理を終了する。
【００４１】
以上説明した第１の実施形態の制御システム１によれば、センシング情報処理部２１０がカメラＥＭ１等の認識装置から認識結果を受信した場合に、判定部４１２によって修正指令値の生成が可能であるか否かが判定され、判定部４１２の判定結果に基づいて修正指令値生成部４１４によって修正指令値が生成されることで、ロボットアーム装置６００に最新の認識結果に基づく修正指令値を出力することができるため、より高いロバスト安定性およびメンテナンス性を実現することができる。
【００４２】
（第２の実施形態）
次に、第２の実施形態の制御システム１Ａについて説明する。以下の説明において、第１の実施形態で説明した内容と同様の機能を有する部分については、同様の名称および符号を付するものとし、その機能に関する説明は省略する。後述する他の実施形態についても同様とする。
【００４３】
図６は、第２の実施形態の制御システム１Ａの構成の一例を示すブロック図である。図６の制御システム１Ａは、図２の制御システム１と比較して、動作計画部１５０を更に備え、動作指令生成部４０４が削除され、モータ制御演算部４１０がサーボドライバ５１０に置換されている点が異なる。したがって、以下では動作計画部１５０とサーボドライバ５１０の説明を中心に行う。動作計画部１５０は、例えば、図１に示したＯＳＳ活用プラットフォーム２００またはＯＳ３００で実行される中位ソフトウェアにより実現される。
【００４４】
動作計画部１５０は、例えば、通信部１５２と、動作計画生成部１５４と、動作学習部１５６とを備える。通信部１５２は、センシング情報処理部２１０の通信部２１６により送信された画像特徴量、力覚特徴量、および接触特徴量を受信し、動作計画生成部１５４に出力する。動作計画生成部１５４は、通信部１５２により出力された各種特徴量に基づいて、動作計画を生成する。動作計画とは、ロボットアーム装置６００に行わせる１以上の動作指令である。動作計画生成部１５４は、例えば、図２の動作指令生成部４０４と同様に、動作スクリプトを生成する。動作計画生成部１５４は、生成した動作計画を動作学習部１５６および通信部１５２に出力する。通信部１５２は、動作計画生成部１５４により出力された動作計画を、ロボットコントローラ４００に送信する。通信部１５２からロボットコントローラ４００への通信は、例えば、ＯＳ３００を介したイーサネットや、ＯＳＳ活用プラットフォーム２００によって提供されるＡＰＩで行われる。
【００４５】
動作学習部１５６は、動作計画生成部１５４により出力された動作計画の一部または全部を記憶学習する。動作学習部１５６は、動作計画の一部を記憶学習する場合、例えば、カメラＥＭ１によって把持対象物と障害物との配置をパターン化して学習することで、ロボットアーム装置６００の軌道に関する動作計画の決定規則を生成する。動作計画生成部１５４は、認識結果が決定規則に当てはまるか否かを判定し、当てはまる場合には決定規則に基づいて動作計画を生成する。動作計画生成部１５４は、認識結果が決定規則に当てはまらない場合には動作計画を生成し、その認識結果および動作計画を動作学習部１５６に記憶させる。また、動作学習部１５６の記憶する決定規則は、把持対象物と障害物との位置情報に基づくロボットアーム装置６００の軌道に関する規則に限らず、例えば、把持対象物の輪郭線から把持部材の把持位置を決定する決定規則であってもよい。
【００４６】
また、動作学習部１５６は、例えば、制御システム１Ａの利用者によってあらかじめ設定された正常な動作計画を表す動作計画を教師データとして、動作計画生成部１５４により出力された動作計画と基準学習データとの乖離度合を導出し、導出した乖離度合を動作計画生成部１５４に出力する。動作計画生成部１５４は、動作学習部１５６によって出力された乖離度合に基づいて、生成する動作計画の位置精度の補填を行う。
【００４７】
ロボットコントローラ４００のモータ指令値生成部４０８は、生成したモータ指令値を通信部４０２に出力する。通信部４０２は、モータ指令値生成部４０８により出力されたモータ指令値を、サーボドライバ５１０に出力する。通信部４０２からサーボドライバ５１０への通信は、例えば、ＯＳ３００を介したイーサネットや、ＯＳＳ活用プラットフォーム２００によって提供されるＡＰＩで行われたり、ロボットアーム装置６００の製造メーカの規定する通信規格で行われたりしてもよいが、イーサキャット規格で出力することが望ましい。
【００４８】
サーボドライバ５１０の通信部５１２は、通信部４０２により出力されたモータ指令値をモータ制御演算部５１４に出力する。モータ制御演算部５１４は、通信部５１２により出力されたモータ指令値に基づいて、ロボットアーム装置６００を制御する指令値を演算し、演算した指令値をロボットアーム装置６００に出力する。通信部５１２は、ロボットアーム装置６００に専用の動力信号（モータ６０２の駆動を制御するモータ駆動電流）を送信する。
【００４９】
なお、動作計画部１５０は、図１の制御装置１００上で実行される。動作計画部１５０は、センシング情報処理部２１０の画像特徴量導出部２１４、力覚特徴量導出部２２０、および接触特徴量導出部２２４が実現されるプロセッサと同一のプロセッサ上で実現されてもよいし、ロボットコントローラ４００の判定部４１２および修正指令値生成部４１４が実現されるプロセッサと同一のプロセッサ上で実現されてもよい。
【００５０】
図７は、制御システム１Ａの処理の流れの一例を示すフローチャートである。ステップＳ３０４の処理は、図４のフローチャートにおけるステップＳ１０４の処理と同様である。また、ステップＳ３１０の処理は、図４のフローチャートにおけるステップＳ１０６の処理と同様である。したがって、下記ではステップＳ３００〜Ｓ３０２、およびＳ３０６〜Ｓ３０８について説明する。
【００５１】
動作計画部１５０は、センシング情報処理部２１０により送信された各種特徴量に基づいて動作計画を生成する（ステップＳ３００）。詳細は図８を用いて後述する。次に、ロボットコントローラ４００は、動作計画に基づいて指令値を生成する（ステップＳ３０２）。
【００５２】
ステップＳ３０４において出力するタイミングでないと判定された場合、ロボットコントローラ４００は、修正指令値生成部４１４による修正指令値の生成のため、新たな認識結果に基づく各種特徴量を受け付ける（ステップＳ３０６）。次に、修正指令値生成部４１４は、修正指令値を生成して目標軌道生成部４０６またはモータ指令値生成部４０８に出力して出力済の指令値と置換させ（ステップＳ３０８）、ステップＳ３０４に処理を戻す。以上、本フローチャートの処理を終了する。
【００５３】
図８は、制御システム１Ａにおける特徴量導出処理、および動作計画学習処理の流れの一例を示すフローチャートである。ステップＳ４００〜４１０の処理は、図４のフローチャートにおけるステップＳ２００〜２１０の処理と同様である。また、図８のフローチャートは、図５と比較してステップＳ４１２〜Ｓ４１８が追加される点が異なる。したがって、下記ではステップＳ４１２〜Ｓ４１８について説明する。
【００５４】
ステップＳ２０２、Ｓ２０６およびＳ２１０の処理の後、動作計画生成部１５４は、各種特徴量が決定規則に当てはまるか否かを判定する（ステップＳ４１２）。動作計画生成部１５４は、決定規則に当てはまると判定した場合、通信部１５２により出力された各種特徴量におよび決定規則に基づいて動作計画を生成する（ステップＳ４１４）。動作計画生成部１５４は、決定規則に当てはまらないと判定した場合、通信部１５２により出力された各種特徴量に基づいて、動作計画および規則を生成する（ステップＳ４１６）。次に、動作計画を学習する（ステップＳ４１８）。以上、本フローチャートの処理を終了する。
【００５５】
以上説明した第２の実施形態の制御システム１Ａによれば、第１の実施形態と同様の効果を奏する他、各種特徴量から導出される決定規則を動作学習部１５６が記憶し、動作学習部１５６によって記憶された動作計画の決定規則に基づいて動作計画生成部１５４が動作計画を生成することで、修正指令値の生成精度を向上させることができる。
【００５６】
（第３の実施形態）
次に、第３の実施形態の制御システム１Ｂについて説明する。
【００５７】
図９は、第３の実施形態の制御システム１Ｂの構成の一例を示すブロック図である。図９の制御システム１Ｂは、図６の制御システム１Ａと比較して、距離センサＥＭ７、光学センサＥＭ８、センシング情報処理部２１０Ｂの構成要素、動作計画部１５０Ｂの構成要素が異なる。したがって、以下では、制御システム１Ａとの相違点を中心に説明する。なお、３次元点群生成部２３０、特徴量導出部２３２および最適化計算部２３４は、図１に示したＯＳＳ活用プラットフォーム２００上で実行される上位ソフトウェアにより実現される。
【００５８】
距離センサＥＭ７は、例えば、ロボットアーム装置６００の把持部材の先端等に設置され、カメラＥＭ１の認識した把持対象物とロボットアーム装置６００の把持部材との測定タイミングでの距離を測定する。距離センサＥＭ7は、測定結果を距離信号処理部２２６に送信する。光学センサＥＭ８は、例えば、カメラＥＭ１が可視光線を収集して撮像データを生成する場合、カメラＥＭ１とは異なる光線（例えば、近赤外線、短波長赤外線、熱赤外線等）で撮像データを生成する。カメラＥＭ１および光学センサＥＭ８は、両者ともに把持対象物を認識するのに用いられてもよいし、カメラＥＭ１にはロボットアーム装置６００が把持する把持対象物を認識させ、光学センサＥＭ８には把持対象物以外の障害物を認識させるというように用途が分けられてもよい。また、光学センサＥＭ８に把持対象物を認識させる場合、光学センサＥＭ８はカメラＥＭ１とは異なる箇所に設置されることで、カメラＥＭ１および光学センサＥＭ８の認識結果から把持対象物の３次元計測結果を導出することができる。光学センサＥＭ８は、アンプＥＭ４を介して認識結果を光学信号処理部２２８に送信する。
【００５９】
センシング情報処理部２１０Ｂは、図２および図６のセンシング情報処理部２１０と比較して、力覚信号処理部２１８および接触信号処理部２２２が、距離信号処理部２２６および光学信号処理部２２８に置き換わっている点が異なる。また、センシング情報処理部２１０Ｂは、図２のセンシング情報処理部２１０と比較して、３次元点群生成部２３０と、特徴量導出部２３２と、最適化計算部２３４とをさらに備える点が異なる。３次元点群生成部２３０、特徴量導出部２３２、および最適化計算部２３４は、「上位ソフトウェア」の他の一例であり、動作計画部１５０Ｂは、「中位ソフトウェア」および「下位ソフトウェア」の他の一例である。
【００６０】
距離信号処理部２２６は、距離センサＥＭ7により送信された測定結果に基づいて、把持対象物とロボットアーム装置６００の把持部材との距離を導出し、３次元点群生成部２３０に出力する。光学信号処理部２２８は、アンプＥＭ４により出力された光学センサＥＭ８の把持対象物または障害物の認識結果の一部または全部を３次元点群生成部２３０に出力する。
【００６１】
３次元点群生成部２３０は、画像取込部２１２により出力された認識結果、距離信号処理部２２６により出力された測定結果、および光学信号処理部２２８により出力された認識結果に基づいて、ロボットアーム装置６００の移動可能な経路を示す３次元点群データを生成する。３次元点群生成部２３０は、生成した３次元点群データを、特徴量導出部２３２に出力する。
【００６２】
特徴量導出部２３２は、３次元点群生成部２３０により出力された３次元点群データを分析し、把持対象物の大きさ、面積、位置、略中心などの情報を示す３次元特徴量を導出する。特徴量導出部２３２は、導出した３次元特徴量を、通信部２１６を介して動作計画部１５０Ｂに送信する。また、特徴量導出部２３２は、導出した３次元特徴量を最適化計算部２３４に出力する。
【００６３】
特徴量導出部２３２は、単一の特徴量導出方法を用いて３次元特徴量を導出してもよいし、複数の特徴量導出方法を用いて３次元特徴量を導出した結果を比較することで、ノイズ除去したり、３次元特徴量の導出精度を自ら評価したりすることで、最も精度が高いと判定した３次元特徴量の導出結果を最適化計算部２３４に出力してもよい。
【００６４】
最適化計算部２３４は、特徴量導出部２３２によって出力された３次元特徴量を記憶し、３次元特徴量の導出に用いるパラメータ等を調整する。最適化計算部２３４は、３次元点群生成部２３０により出力された３次元点群データの一部または全部を併せて記憶してもよい。
【００６５】
３次元点群生成部２３０、特徴量導出部２３２および最適化計算部２３４は、図１の制御装置１００上で実行される。
【００６６】
動作計画部１５０Ｂは、図６の動作計画部１５０と比較して、把持計画生成部１５８と、障害物検出部１６０と、把持計画学習部１６２とを備える点が異なる。
【００６７】
把持計画生成部１５８は、通信部１５２を介してセンシング情報処理部２１０Ｂから受信した３次元特徴量に基づいて、把持対象物の把持計画を生成する。把持計画は、例えば、ロボットアーム装置６００が把持対象物を把持する位置や把持する力、ロボットアーム装置６００自身の把持姿勢の計画を含む。把持計画生成部１５８は、生成した把持計画を動作計画生成部１５４および把持計画学習部１６２に出力する。
【００６８】
障害物検出部１６０は、通信部１５２を介してセンシング情報処理部２１０Ｂから受信した３次元特徴量に基づいて、障害物を検出し、検出した障害物の位置情報を生成する。障害物検出部１６０は、生成した障害物の位置情報を動作計画生成部１５４に出力する。
【００６９】
動作計画生成部１５４は、把持計画生成部１５８により出力された把持計画と、障害物検出部１６０により出力された障害物の位置情報とに基づいて、ロボットアーム装置６００の動作計画を生成する。動作計画生成部１５４は、生成した動作計画を、通信部１５２を介してロボットコントローラ４００に送信する。
【００７０】
把持計画学習部１６２は、動作計画生成部１５４により出力された動作計画の一部または全部を記憶学習する。把持計画学習部１６２は、例えば、ロボットアーム装置６００の把持対象物の形状等が類似する場合、動作計画のうち、把持計画生成部１５８により出力された把持計画だけを抽出して記憶学習してもよい。また、把持計画学習部１６２は、例えば、障害物の位置が殆ど変化しない場合、障害物検出部１６０により出力された障害物の位置情報だけを抽出して記憶学習してもよい。把持計画学習部１６２は、例えば、把持対象物と障害物との配置等をパターン化して学習することで、ロボットアーム装置６００の軌道に関する把持計画の決定規則を生成する。把持計画学習部１６２は、動作計画生成部１５４に動作計画を生成する際の決定規則を出力する。動作計画生成部１５４は、把持計画学習部１６２により出力された決定規則のパターンに当てはまる場合、決定規則に基づいて動作計画を生成する。また、把持計画学習部１６２は、把持計画生成部１５８に把持計画を生成する際の決定規則を出力する。把持計画生成部１５８は、把持計画学習部１６２により出力された決定規則のパターンに当てはまる場合、決定規則に基づいて把持計画を生成する。
【００７１】
なお、動作計画部１５０Ｂは、図１の制御装置１００上で実行される。動作計画部１５０Ｂは、例えば、３次元点群生成部２３０、特徴量導出部２３２および最適化計算部２３４が実現されるプロセッサと異なる他のプロセッサ上で実現される。
【００７２】
図１０は、制御システム１Ｂの処理の流れの一例を示すフローチャートである。ステップＳ５００〜Ｓ５０６の処理は、図７のフローチャートにおけるステップＳ３００〜Ｓ３０６の処理と同様である。また、ステップＳ５１０の処理は、図７のフローチャートにおけるステップＳ３１０の処理と同様である。図１０に示すフローチャートは、図７のフローチャートと比較して、ステップＳ５００およびＳ５０８に示す処理セットが異なる。したがって、下記ではステップＳ５００およびＳ５０８の処理セットについて図１１のフローチャートを用いて説明する。
【００７３】
図１１は、制御システム１Ｂにおける特徴量導出処理、および動作計画学習処理の流れの一例を示すフローチャートである。ステップＳ６００の処理は、図８のフローチャートにおけるステップＳ４００の処理と同様である。また、ステップＳ６０８の処理は、図５のフローチャートにおけるステップＳ４１２の処理と同様である。また、ステップＳ６１８の処理は、図５のフローチャートにおけるステップＳ４１４の処理と同様である。図１１のフローチャートは、図８と比較してステップＳ６０２〜Ｓ６０６、およびステップＳ６１０〜Ｓ６１６が追加される点が異なる。したがって、下記ではステップＳ６０２〜Ｓ６０６、およびステップＳ６１０〜Ｓ６１６を中心に説明する。なお、以下に示すステップＳ６００、Ｓ６０２およびＳ６０４は同時に行われてもよいし、それぞれ独立したタイミングで行われてもよい。
【００７４】
距離信号処理部２２６は、距離センサＥＭ7により送信された測定結果に基づいて、把持対象物とロボットアーム装置６００の把持部材との距離を導出し、３次元点群生成部２３０に出力する（ステップＳ６０２）。また、光学信号処理部２２８は、光学センサＥＭ８の把持対象物または障害物の認識結果を３次元点群生成部２３０に出力する（ステップＳ６０４）。ステップＳ６００、Ｓ６０２およびＳ６０４の処理の後、３次元点群生成部２３０は、ロボットアーム装置６００の移動可能な経路を示す３次元点群データを生成する（ステップＳ６０６）。
【００７５】
ステップＳ６０８において決定規則に当てはまると判定された場合、把持計画生成部１５８は決定規則に基づいて把持計画を生成する（ステップＳ６１０）。また、ステップＳ４００において決定規則に当てはまらないと判定された場合、把持計画生成部１５８は把持計画を生成し（ステップＳ６１２）、把持計画学習部１６２に生成した把持計画を学習させる（ステップＳ６１４）。また、ステップＳ６０４の処理の後、障害物検出部１６０は、障害物を検出する（ステップＳ６１６）。
【００７６】
ステップＳ６１０，Ｓ６１４およびＳ６１６の処理の後、動作計画生成部１５４は、ステップＳ６１８の処理を行う。以上、本フローチャートの処理を終了する。
【００７７】
以上説明した第３の実施形態の制御システム１Ｂによれば、第１の実施形態および第２の実施形態と同様の効果を奏する他、障害物検出部１６０が障害物を検出し、３次元特徴量から導出される把持計画の決定規則を把持計画学習部１６２が記憶し、障害物検出部１６０の障害物検出結果、および把持計画学習部１６２によって記憶された把持計画の決定規則に基づいて動作計画生成部１５４が動作計画を生成することで、把持計画および動作計画の生成精度や生成性能をより向上させることができる。
【００７８】
（第４の実施形態）
次に、第４の実施形態の制御システム１Ｃについて説明する。
【００７９】
図１２は、第４の実施形態の制御システム１Ｃの構成の一例を示すブロック図である。図１２に示す構成は、図６に示した制御システム１Ａの構成と比較して、ログ記憶部８００をさらに備える点が異なる。ログ記憶部８００は、図１に示したＯＳＳ活用プラットフォーム２００で実行される上位ソフトウェアにより実現される。したがって、以下ではログ記憶部８００を中心に説明する。
【００８０】
ログ記憶部８００は、例えば、通信部８０２と、記憶部８０４と、分析部８０６とを備える。通信部８０２は、制御システム１Ｃのセンシング情報処理部２１０のログ対象情報処理部２３６、動作計画部１５０のログ対象情報処理部１６４、およびロボットコントローラ４００のログ対象情報処理部４１６から出力されるログ情報を受信する。通信部８０２は受信したログ情報を記憶部８０４に記憶させる。ログ記憶部８００は、例えば、制御装置１００の上位ソフトウェアが実行されることによって実現される。ログ対象情報処理部２３６、ログ対象情報処理部１６４、およびログ対象情報処理部４１６は、「ログ処理部」の一例である。
【００８１】
分析部８０６は、所定の間隔（例えば、数時間〜１日に１度）で記憶部８０４に記憶されたログ情報を分析し、所定の傾向が見られるか否かを判定する。所定の傾向とは、例えば、消耗部品の劣化の傾向や、部品故障の傾向である。分析部８０６は、所定の傾向が見られると判定した場合、制御システム１Ｃの表示装置に判定結果を表示させてもよいし、あらかじめ設定された方法（例えば、メール等）で制御システム１Ｃの管理者に判定結果を通知してもよい。
【００８２】
センシング情報処理部２１０のログ対象情報処理部２３６、動作計画部１５０のログ対象情報処理部１６４、およびロボットコントローラ４００のログ対象情報処理部４１６から出力されるログ情報は、例えば、どの装置から、どのタイミングで、どういうログ種別のログとして出力されたログ情報であるかの情報を含む。
【００８３】
また、ログ情報は、ログの緊急度や用途レベルに応じて出力レベルが設定可能であり、制御システム１Ｃの管理者によって最低限のログのみ出力する、収集できる全てのログ情報を出力する等の出力レベルの設定が可変である。例えば、センシング情報処理部２１０のログ対象情報処理部２３６は、画像取込部２１２および画像特徴量導出部２１４から処理ログの一部または全部を出力される。ログ対象情報処理部２３６は、処理ログ情報から所定の傾向の分析に用いる情報に関する部分を加工抽出して、通信部２１６に出力する。同様に、ログ対象情報処理部２３６は、力覚信号処理部２１８、力覚特徴量導出部２２０、接触信号処理部２２２、および接触特徴量導出部２２４から処理ログの一部または全部を出力され、処理ログ情報から所定の傾向の分析に用いる情報に関する部分を加工抽出して、通信部２１６に出力する。通信部２１６は、ログ記憶部８００の通信部８０２に加工抽出したログ情報を送信する。
【００８４】
動作計画部１５０のログ対象情報処理部１６４は、ログ対象情報処理部２３６と同様に、動作計画生成部１５４および動作学習部１５６から処理ログの一部または全部を出力される。ログ対象情報処理部１６４は、処理ログ情報から所定の傾向の分析に用いる情報に関する部分を加工抽出して、通信部１５２に出力する。通信部１５２は、ログ記憶部８００の通信部８０２に加工抽出したログ情報を送信する。
【００８５】
また、ロボットコントローラ４００のログ対象情報処理部４１６は、目標軌道生成部４０６、モータ指令値生成部４０８、判定部４１２、および修正指令値生成部４１４から処理ログの一部または全部を出力される。ログ対象情報処理部４１６は、処理ログ情報から所定の傾向の分析に用いる情報に関する部分を加工抽出して、通信部４０２に出力する。通信部４０２は、ログ記憶部８００の通信部８０２に加工抽出したログ情報を送信する。
【００８６】
図１３は、制御システム１Ｃのログ記憶部８００のログ収集処理の流れの一例を示すフローチャートである。
【００８７】
まず、通信部８０２は、センシング情報処理部２１０のログ対象情報処理部２３６、動作計画部１５０のログ対象情報処理部１６４、およびロボットコントローラ４００のログ対象情報処理部４１６から出力されるログ情報を受信し、記憶部８０４に記憶させる（ステップＳ７００）。次に、分析部８０６は、記憶部８０４に記憶されたログ情報を分析する（ステップＳ７０２）。分析部８０６は、記憶部８０４に記憶されたログ情報を分析した結果、所定の傾向が見られるか否かを判定する（ステップＳ７０４）。分析部８０６は、所定の傾向が見られると判定した場合、制御システム１Ｃの管理者に通知し（ステップＳ７０６）、処理を終了する。分析部８０６は、所定の傾向が見られると判定しなかった場合、本フローチャートの処理を終了する。
【００８８】
以上説明した第４の実施形態の制御システム１Ｃによれば、第１の実施形態、第２の実施形態、第３の実施形態と同様の効果を奏する他、記憶部８０４の記憶する制御システム１Ｃのログ情報を分析部８０６が分析し、所定の傾向が見られるか否かを判定することで消耗部品の劣化や故障の傾向等を検知することによって、さらに高いメンテナンス性を実現することができる。
【００８９】
上述の説明において、制御装置１００の制御対象がロボットアーム装置６００である例を用いて説明したが、制御装置１００の制御対象は他の自律動作機構、例えば移動体（自律走行する移動体や、自律飛行する移動体等）であってもよい。
【００９０】
以上説明した少なくともひとつの実施形態によれば、２以上のプロセッサを備え、カメラＥＭ１等の認識装置から受信する認識結果に基づいて、ロボットアーム装置６００のような自律動作機構を制御するロボットコントローラ４００を制御する制御装置１００を実現する第１のプロセッサおよび第２のプロセッサのうち、第１のプロセッサにおいてセンシング情報処理部２１０によって実現されるカメラＥＭ１等の認識結果の特徴を表す特徴量を導出する上位ソフトウェアを実現し、第２のプロセッサにおいてロボットコントローラ４００が動作計画に基づいてロボットアーム装置６００を制御する指令値を出力する下位ソフトウェアを実現し、第１のプロセッサまたは第２のプロセッサのいずれかでセンシング情報処理部２１０によって導出された特徴量に基づいて、動作計画を生成する中位ソフトウェアを実現することにより、より高いロバスト安定性およびメンテナンス性を実現することができる。
【００９１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９２】
１、１Ａ、１Ｂ、１Ｃ、１Ｚ…制御システム、１００…制御装置、１５０…動作計画部、１５０Ｂ…動作計画部、１５２…通信部、１５４…動作計画生成部、１５６…動作学習部、１５８…把持計画生成部、１６０…障害物検出部、１６２…把持計画学習部、１６４…ログ対象情報処理部、２００…ＯＳＳ活用プラットフォーム、２１０、２１０Ｂ…センシング情報処理部、２１２…画像取込部、２１４…画像特徴量導出部、２１６…通信部、２１８…力覚信号処理部、２２０…力覚特徴量導出部、２２２…接触信号処理部、２２４…接触特徴量導出部、２２６…距離信号処理部、２２８…光学信号処理部、２３０…次元点群生成部、２３２…特徴量導出部、２３４…最適化計算部、２３６…ログ対象情報処理部、３００…ＯＳ、４００…ロボットコントローラ、４０２…通信部、４０４…動作指令生成部、４０６…目標軌道生成部、４０８…モータ指令値生成部、４１０…モータ制御演算部、４１２…判定部、４１４…修正指令値生成部、４１６…ログ対象情報処理部、５００…サーボアンプ、５１０…サーボドライバ、５１２…通信部、５１４…モータ制御演算部、６００…ロボットアーム装置、６０２…モータ、６０４…エンコーダ、８００…ログ記憶部、８０２…通信部、８０４…記憶部、８０６…分析部
【図１】
2020025992.tif 000003
【図２】
2020025992.tif 000004
【図３】
2020025992.tif 000005
【図４】
2020025992.tif 000006
【図５】
2020025992.tif 000007
【図６】
2020025992.tif 000008
【図７】
2020025992.tif 000009
【図８】
2020025992.tif 000010
【図９】
2020025992.tif 000011
【図１０】
2020025992.tif 000012
【図１１】
2020025992.tif 000013
【図１２】
2020025992.tif 000014
【図１３】
2020025992.tif 000015