(57)【特許請求の範囲】
【請求項１】
外部記憶装置に記憶された第１データを用いて更新される第１プログラムと、情報処理装置に記憶された第２データを用いて更新される第２プログラムとを記憶する記憶部と、
撮像装置が撮像した撮像画像を処理する処理部と、
前記第１プログラム及び前記第２プログラムとは異なる第３プログラムが実行されることで動作し、前記外部記憶装置に記憶された前記第１データを読み込み、読み込まれた前記第１データに基づいて前記第１プログラムを更新する第１更新部と、
前記第３プログラムが実行されることで動作し、前記外部記憶装置に前記第１データが記憶されているか否かを判定する確認部と、
前記第３プログラムが実行されることで動作し、前記確認部により前記外部記憶装置に前記第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させる表示制御部と、
を備え、
前記第１プログラムは、通常時に起動される第１ＯＳであり、
前記第２プログラムは、前記第１ＯＳ上において動作し、画像処理を行うアプリケーションプログラムであり、
前記第３プログラムは、前記第１ＯＳが更新される場合に起動される第２ＯＳであり、
前記第１データは、前記第３プログラムが読み込み可能なフォーマットで記録された更新ファイルであり、
前記確認部は、前記第１ＯＳの更新を実行する操作を受け付けた場合、且つ、前記外部記憶装置が接続されている場合、予め決められた動作を行い、
前記予め決められた動作は、前記外部記憶装置を参照して前記外部記憶装置に前記第１データが記憶されているか否かを判定する動作であり、
前記第１更新部は、前記確認部により前記外部記憶装置に前記第１データが記憶されていると判定された場合において、前記第１データの所定のマウントポイントへのマウントを行い、
前記第１データの前記マウントポイントへのマウントに失敗した場合、前記第１データが不正なデータであると判定し、前記第１データの前記マウントポイントへのマウントに成功した場合、前記第１データに基づいて前記第１プログラムを更新する、
画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第１更新部は、前記外部記憶装置の記憶領域に更新前の前記第１プログラムをバックアップし、その後、前記第１データに基づいて前記第１プログラムを更新する、
画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
外部機器と通信する通信部と、
前記第１プログラムが実行されることで動作し、前記通信部を介して前記情報処理装置から前記第２データを取得し、取得された前記第２データに基づいて前記第２プログラムを更新する第２更新部と、
を備える画像処理装置。
【請求項４】
所定作業を行うロボットと、
前記所定作業に係る範囲を撮像する撮像装置と、
前記撮像装置が撮像した撮像画像を処理する画像処理装置と、
前記画像処理装置が処理した結果に基づいて前記ロボットを制御する制御装置と、を含み、
前記画像処理装置は、
外部記憶装置に記憶された第１データを用いて更新される第１プログラムと、情報処理装置に記憶された第２データを用いて更新される第２プログラムとを記憶する記憶部と、
撮像装置が撮像した撮像画像を処理する処理部と、
前記第１プログラム及び前記第２プログラムとは異なる第３プログラムが実行されることで動作し、前記外部記憶装置に記憶された前記第１データを読み込み、読み込まれた前記第１データに基づいて前記第１プログラムを更新する第１更新部と、
前記第３プログラムが実行されることで動作し、前記外部記憶装置に前記第１データが記憶されているか否かを判定する確認部と、
前記第３プログラムが実行されることで動作し、前記確認部により前記外部記憶装置に前記第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させる表示制御部と、
を備え、
前記第１プログラムは、通常時に起動される第１ＯＳであり、
前記第２プログラムは、前記第１ＯＳ上において動作し、画像処理を行うアプリケーションプログラムであり、
前記第３プログラムは、前記第１ＯＳが更新される場合に起動される第２ＯＳであり、
前記第１データは、前記第３プログラムが読み込み可能なフォーマットで記録された更新ファイルであり、
前記確認部は、前記第１ＯＳの更新を実行する操作を受け付けた場合、且つ、前記外部記憶装置が接続されている場合、予め決められた動作を行い、
前記予め決められた動作は、前記外部記憶装置を参照して前記外部記憶装置に前記第１データが記憶されているか否かを判定する動作であり、
前記第１更新部は、前記確認部により前記外部記憶装置に前記第１データが記憶されていると判定された場合において、前記第１データの所定のマウントポイントへのマウントを行い、
前記第１データの前記マウントポイントへのマウントに失敗した場合、前記第１データが不正なデータであると判定し、前記第１データの前記マウントポイントへのマウントに成功した場合、前記第１データに基づいて前記第１プログラムを更新する、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、及びロボットシステムに関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいて作業対象の位置及び姿勢を算出し、算出された位置及び姿勢に基づいてロボットに所定の作業を行わせる方法が研究・開発が行われている。
【０００３】
これに関し、ロボットを制御する制御装置に接続され、撮像画像に基づく作業対象の位置及び姿勢の算出等の画像処理を行う制御装置とは別体の画像処理装置が知られている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://robots.epson.com/admin/uploads/product_catalog/files/EPSON_CV1_Vision%20(RevB).pdf  「Vision  Guidance  for  Epson  Robots」
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の装置は、ＯＳ（Operating  System）を特別な知識を有さない者（例えば、ユーザー）に更新させることを考慮しておらず、ＯＳを更新しなければならない場合、装置を分解して特別な知識を有する者（例えば、メーカーの技術者等）に送付し、ＯＳを更新して貰わなければならず、手間と労力を費やす必要があった。
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、プログラムを容易に更新することができる画像処理装置、及びロボットシステムを提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様は、第１プログラムと第２プログラムとを記憶する記憶部と、撮像装置が撮像した撮像画像を処理する処理部と、を含み、前記第１プログラムは、外部記憶装置に記憶された第１データを用いて更新され、前記第２プログラムは、情報処理装置に記憶された第２データを用いて更新される、画像処理装置である。
この構成により、画像処理装置において、第１プログラムは、外部記憶装置に記憶された第１データを用いて更新され、第２プログラムは、情報処理装置に記憶された第２データを用いて更新される。これにより、画像処理装置は、プログラムを容易に更新することができる。
【０００８】
また、本発明の他の態様は、画像処理装置において、前記第１プログラム及び前記第２プログラムとは異なる他のプログラムが実行されることで動作し、前記外部記憶装置に記憶された前記第１データを読み込み、読み込まれた前記第１データに基づいて前記第１プログラムを更新する第１更新部を備える、構成が用いられてもよい。
この構成により、画像処理装置は、第１プログラム及び第２プログラムとは異なる他のプログラムが実行されることで動作し、外部記憶装置に記憶された第１データを読み込み、読み込まれた第１データに基づいて第１プログラムを更新する。これにより、画像処理装置は、第１プログラムを実行することなく、第１プログラムを更新することができるため、第１プログラムの実行中に第１プログラムの更新を行うことによって第１プログラムが破損してしまうこと抑制することが出来る。
【０００９】
また、本発明の他の態様は、画像処理装置において、前記第１更新部は、前記外部記憶装置の記憶領域に更新前の前記第１プログラムをバックアップし、その後、前記第１データに基づいて前記第１プログラムを更新する、構成が用いられてもよい。
この構成により、画像処理装置は、外部記憶装置の記憶領域に更新前の第１プログラムをバックアップし、その後、第１データに基づいて第１プログラムを更新する。これにより、画像処理装置は、自装置の記憶領域にバックアップ用の記憶領域を確保する必要が無く、自装置の記憶領域の確保に係るコストを低減することができる。
【００１０】
また、本発明の他の態様は、画像処理装置において、前記外部記憶装置に前記第１データが記憶されているか否かを判定する確認部と、前記確認部により前記外部記憶装置に前記第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させる表示制御部と、を備え、前記第１更新部は、前記確認部により前記外部記憶装置に前記第１データが記憶されていると判定された場合、前記第１データに基づいて前記第１プログラムを更新する、構成が用いられてもよい。
この構成により、画像処理装置は、外部記憶装置に第１データが記憶されているか否かを判定し、外部記憶装置に第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させ、外部記憶装置に第１データが記憶されていると判定された場合、第１データに基づいて第１プログラムを更新する。これにより、画像処理装置は、外部記憶装置に第１データが記憶されていない状態で誤って第１プログラムの更新が継続されてしまうことを抑制することができる。
【００１１】
また、本発明の他の態様は、画像処理装置において、外部機器と通信する通信部と、前記第１プログラムが実行されることで動作し、前記通信部を介して前記情報処理装置から前記第２データを取得し、取得された前記第２データに基づいて前記第２プログラムを更新する第２更新部と、を備える、構成が用いられてもよい。
この構成により、画像処理装置は、第１プログラムが実行されることで動作し、通信部を介して情報処理装置から第２データを取得し、取得された第２データに基づいて第２プログラムを更新する。これにより、画像処理装置は、情報処理装置によって第２プログラムを容易に更新することができる。
【００１２】
また、本発明の他の態様は、所定作業を行うロボットと、前記所定作業に係る範囲を撮像する撮像装置と、前記撮像装置が撮像した撮像画像を処理する画像処理装置と、前記画像処理装置が処理した結果に基づいて前記ロボットを制御する制御装置と、を含み、前記画像処理装置は、第１プログラムと第２プログラムとを記憶する記憶部と、前記撮像装置が撮像した撮像画像を処理する処理部と、を含み、前記第１プログラムは、外部記憶装置に記憶された第１データを用いて更新され、前記第２プログラムは、情報処理装置に記憶された第２データを用いて更新される、ロボットシステムである。
この構成により、ロボットシステムにおいて、第１プログラムは、外部記憶装置に記憶された第１データを用いて更新され、第２プログラムは、情報処理装置に記憶された第２データを用いて更新される。これにより、画像処理装置は、プログラムを容易に更新することができる。
また、本発明の他の態様は、外部記憶装置に記憶された第１データを用いて更新される第１プログラムと、情報処理装置に記憶された第２データを用いて更新される第２プログラムとを記憶する記憶部と、撮像装置が撮像した撮像画像を処理する処理部と、前記第１プログラム及び前記第２プログラムとは異なる第３プログラムが実行されることで動作し、前記外部記憶装置に記憶された前記第１データを読み込み、読み込まれた前記第１データに基づいて前記第１プログラムを更新する第１更新部と、前記第３プログラムが実行されることで動作し、前記外部記憶装置に前記第１データが記憶されているか否かを判定する確認部と、前記第３プログラムが実行されることで動作し、前記確認部により前記外部記憶装置に前記第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させる表示制御部と、を備え、前記第１プログラムは、通常時に起動される第１ＯＳであり、前記第２プログラムは、前記第１ＯＳ上において動作し、画像処理を行うアプリケーションプログラムであり、前記第３プログラムは、前記第１ＯＳが更新される場合に起動される第２ＯＳであり、前記第１データは、前記第３プログラムが読み込み可能なフォーマットで記録された更新ファイルであり、前記確認部は、前記第１ＯＳの更新を実行する操作を受け付けた場合、且つ、前記外部記憶装置が接続されている場合、予め決められた動作を行い、前記予め決められた動作は、前記外部記憶装置を参照して前記外部記憶装置に前記第１データが記憶されているか否かを判定する動作であり、前記第１更新部は、前記確認部により前記外部記憶装置に前記第１データが記憶されていると判定された場合において、前記第１データの所定のマウントポイントへのマウントを行い、前記第１データの前記マウントポイントへのマウントに失敗した場合、前記第１データが不正なデータであると判定し、前記第１データの前記マウントポイントへのマウントに成功した場合、前記第１データに基づいて前記第１プログラムを更新する、画像処理装置である。
また、本発明の他の態様は、所定作業を行うロボットと、前記所定作業に係る範囲を撮像する撮像装置と、前記撮像装置が撮像した撮像画像を処理する画像処理装置と、前記画像処理装置が処理した結果に基づいて前記ロボットを制御する制御装置と、を含み、前記画像処理装置は、外部記憶装置に記憶された第１データを用いて更新される第１プログラムと、情報処理装置に記憶された第２データを用いて更新される第２プログラムとを記憶する記憶部と、撮像装置が撮像した撮像画像を処理する処理部と、前記第１プログラム及び前記第２プログラムとは異なる第３プログラムが実行されることで動作し、前記外部記憶装置に記憶された前記第１データを読み込み、読み込まれた前記第１データに基づいて前記第１プログラムを更新する第１更新部と、前記第３プログラムが実行されることで動作し、前記外部記憶装置に前記第１データが記憶されているか否かを判定する確認部と、前記第３プログラムが実行されることで動作し、前記確認部により前記外部記憶装置に前記第１データが記憶されていないと判定された場合、エラーを示す情報を表示部に表示させる表示制御部と、を備え、前記第１プログラムは、通常時に起動される第１ＯＳであり、前記第２プログラムは、前記第１ＯＳ上において動作し、画像処理を行うアプリケーションプログラムであり、前記第３プログラムは、前記第１ＯＳが更新される場合に起動される第２ＯＳであり、前記第１データは、前記第３プログラムが読み込み可能なフォーマットで記録された更新ファイルであり、前記確認部は、前記第１ＯＳの更新を実行する操作を受け付けた場合、且つ、前記外部記憶装置が接続されている場合、予め決められた動作を行い、前記予め決められた動作は、前記外部記憶装置を参照して前記外部記憶装置に前記第１データが記憶されているか否かを判定する動作であり、前記第１更新部は、前記確認部により前記外部記憶装置に前記第１データが記憶されていると判定された場合において、前記第１データの所定のマウントポイントへのマウントを行い、前記第１データの前記マウントポイントへのマウントに失敗した場合、前記第１データが不正なデータであると判定し、前記第１データの前記マウントポイントへのマウントに成功した場合、前記第１データに基づいて前記第１プログラムを更新する、ロボットシステムである。
【００１３】
以上により、画像処理装置、及びロボットシステムにおいて、第１プログラムは、外部記憶装置に記憶された第１データを用いて更新され、第２プログラムは、情報処理装置に記憶された第２データを用いて更新される。これにより、画像処理装置、及びロボットシステムは、プログラムを容易に更新することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】画像処理装置４０のハードウェア構成の一例を示す図である。
【図３】外部ストレージ４２３に格納された複数のファイルを例示する図である。
【図４】通常時起動ＯＳが起動中の画像処理装置４０の機能構成の一例を示す図である。
【図５】障害時起動ＯＳが起動中の画像処理装置４０の機能構成の一例を示す図である。
【図６】制御部４７−１が行うアプリ更新処理の流れの一例を示すフローチャートである。
【図７】制御部４７−２が行うＯＳ更新処理の流れの一例を示すフローチャートである。
【図８】障害時起動ＯＳのメニューを表示するためのＣＵＩの一例を示す図である。
【図９】通常時起動ＯＳの更新を実行した時に生じる事象への警告を表示するととともに、通常時起動ＯＳの更新を実行するか否かの確認を行うＣＵＩの一例を示す。
【図１０】通常時起動ＯＳの更新の成功を示す情報を表示するＣＵＩの一例を示す図である。
【発明を実施するための形態】
【００１５】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、情報処理装置５と、撮像装置１０と、ロボット２０と、制御装置３０と、画像処理装置４０を具備する。
【００１６】
ロボットシステム１は、情報処理装置５によりユーザーからの操作を受け付け、受け付けられた操作に基づいてロボット２０に所定の作業を行わせる。所定の作業とは、例えば、図１に示したように、作業台ＴＢの上面に配置された作業対象Ｍを所定位置に再配置させる作業を示すが、他の作業であってもよい。作業台ＴＢは、例えば、テーブル等の台であるが、これに代えて、作業対象Ｍを配置することが可能であれば、床面や壁面等であってもよい。作業対象Ｍは、ロボット２０により把持可能な物体であり、例えば、ネジやボルト等の工業製品の部品であるが、他の物体であってもよい。図１において、作業対象Ｍは、直方体形状の物体として示す。
【００１７】
情報処理装置５は、例えば、ノートＰＣ（Personal  Computer）やデスクトップＰＣ、タブレットＰＣ、多機能携帯電話端末（スマートフォン）等、ロボット２０を制御するためのアプリケーションプログラムをインストールすることが可能な装置であり、更にディスプレイを備えた装置である。このアプリケーションプログラムは、ロボット２０を制御する制御プログラムを作成するためのＧＵＩ（Graphical  User  Interface）や、制御装置３０や画像処理装置４０それぞれの状態（例えば、各種のステータスや故障の有無等）を表示するためのＧＵＩ等、各種の機能を有するＧＵＩを情報処理装置５のディスプレイに表示させる。
【００１８】
情報処理装置５は、ディスプレイに表示されたＧＵＩを介してユーザーからの操作を受け付け、受け付けられた操作に基づいて前述の制御プログラムを作成し、それをコンパイルする。このコンパイルにより、制御プログラムは、制御装置３０により実行可能な形式のオブジェクトコードに変換される。情報処理装置５は、ディスプレイに表示されたＧＵＩを介してユーザーからの操作を受け付け、受け付けられた操作に基づいて、このオブジェクトコードを制御装置３０に出力する。
【００１９】
情報処理装置５は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、情報処理装置５と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００２０】
撮像装置１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。撮像装置１０は、ケーブルによって画像処理装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、撮像装置１０と画像処理装置４０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００２１】
撮像装置１０は、作業対象Ｍを含む範囲を撮像画像として撮像可能な位置に設置される。撮像装置１０は、静止画像を撮像画像として撮像する構成であるとするが、これに代えて、動画像を撮像画像として撮像する構成であってもよい。
【００２２】
ロボット２０は、作業対象Ｍの位置及び姿勢に基づいた制御信号を制御装置３０から取得し、取得した制御信号に基づいて所定の作業を行う。ロボット２０は、例えば、物体（この一例では、作業対象Ｍ）を把持可能な爪部を備えるエンドエフェクターＥＮＤと、マニピュレーターＭＮＰと、図示しない複数のアクチュエーターを備えた単腕のロボットである。単腕のロボットとは、エンドエフェクターＥＮＤとマニピュレーターＭＮＰ（又は、マニピュレーターＭＮＰのみ）により構成される１本の腕を有するロボットを示す。
【００２３】
なお、ロボット２０は、単腕のロボットである構成に代えて、スカラロボット（水平多関節ロボット）や双腕のロボット等であってもよい。スカラロボットとは、マニピュレーターが水平方向にのみ動き、マニピュレーターの先端のスライド軸のみが上下に動くロボットである。また、双腕のロボットとは、エンドエフェクターＥＮＤとマニピュレーターＭＮＰ（又は、マニピュレーターＭＮＰのみ）によりそれぞれ構成される２本の腕を有するロボットを示す。
【００２４】
ロボット２０の腕は、６軸垂直多関節型となっており、支持台とマニピュレーターＭＮＰとエンドエフェクターＥＮＤとがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができる。なお、ロボット２０の腕は、５自由度（５軸）以下で動作するものであってもよく、７自由度（７軸）以上で動作するものであってもよい。
【００２５】
ロボット２０は、例えばケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット２０と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。なお、ロボット２０は、図１に示したようにロボット２０の外部に設置された制御装置３０と接続される構成とするが、この構成に代えて、制御装置３０がロボット２０に内蔵される構成であってもよい。
【００２６】
制御装置３０は、情報処理装置５からオブジェクトコードを取得し、取得されたオブジェクトコードに基づいて、所定の作業を行うようにロボット２０を制御する。より具体的には、この一例において、制御装置３０は、オブジェクトコードに基づいて画像処理装置４０に対し、撮像装置１０により作業対象Ｍを含む範囲が撮像された撮像画像を取得し、取得された撮像画像に基づいて作業対象Ｍの位置及び姿勢を算出する画像処理を行うように要求する。
【００２７】
そして、制御装置３０は、画像処理装置４０による前述の画像処理が終了した後、作業対象Ｍの位置及び姿勢を示す情報を画像処理装置４０から取得する。制御装置３０は、取得された作業対象Ｍの位置及び姿勢に基づく制御信号を生成し、生成された制御信号をロボット２０に出力することでロボット２０が所定の作業を行うように制御する。
【００２８】
画像処理装置４０は、オブジェクトコードに基づく制御装置３０からの要求に応じて、撮像装置１０から作業対象Ｍを含む範囲が撮像された撮像画像を取得する。そして、画像処理装置４０は、撮像装置１０から撮像画像を取得した後、取得された撮像画像に基づいて作業対象Ｍの位置及び姿勢を算出する画像処理を行う。画像処理装置４０は、画像処理の結果として得られた作業対象Ｍの位置及び姿勢を示す情報を制御装置３０に出力する。
【００２９】
なお、画像処理装置４０は、オブジェクトコードに基づく制御装置３０からの要求に応じてこれらの処理を行う構成に代えて、撮像装置１０から周期的に撮像画像を取得し、撮像画像が取得される度に、取得された撮像画像に対して前述の画像処理を行うことで作業対象Ｍの位置及び姿勢を算出する構成であってもよい。この場合、画像処理装置４０は、制御装置３０から作業対象Ｍの位置及び姿勢を示す情報の取得の要求を取得するたびに、その時点で算出されている作業対象Ｍの位置及び姿勢を示す情報を制御装置３０に出力する。
【００３０】
以下では、このように構成されるロボットシステム１における画像処理装置４０が有するプログラム更新機能について説明する。本実施形態において、画像処理装置４０が有するプログラム更新機能とは、例えば、画像処理装置４０のＯＳやアプリケーションソフトウェアを実現するための複数のプログラムのうちの一部又は全部を変更（例えば、書き換えによる変更や削除による変更等）を行う機能を示すが、１以上の他のプログラムを変更する機能であってもよい。以下では、説明の便宜上、プログラムを変更（例えば、書き換えによる変更や削除による変更等）することを、プログラムを更新すると称して説明する。なお、本実施形態において、ソフトウェアとは、プログラムを実行することで実現される機能の総称であるとして説明する。
【００３１】
次に、図２を参照して、画像処理装置４０のハードウェア構成について説明する。図２は、画像処理装置４０のハードウェア構成の一例を示す図である。画像処理装置４０は、例えば、ＣＰＵ（Central  Processing  Unit）４１と、記憶部４２と、入力受付部４３と、通信部４４と、表示部４５と、検出部４６を備え、通信部４４を介して制御装置３０や他の画像処理装置４０、他の装置等と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。ＣＰＵ４１は、記憶部４２に格納された各種プログラムを実行する。
【００３２】
記憶部４２は、メモリー４２１と、ストレージ４２２を備える。
メモリー４２１は、例えば、ＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ（Static  Random  Access  Memory）等を含み、画像処理装置４０が備える機能部のうち主としてＣＰＵ４１等のプロセッサーが直接アクセス可能な記憶装置である。
【００３３】
ストレージ４２２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含み、第１プログラム４２２１、第２プログラム４２２２、及び第３プログラムを含む各種のプログラム等や、画像処理装置４０が処理する各種情報、画像処理装置４０が処理する画像等を格納する。
【００３４】
ストレージ４２２は、記憶領域がパーティションによって複数に分割されている。この一例において、第１プログラム４２２１及び第２プログラム４２２２が第１記憶領域、第３プログラム４２２３が第１記憶領域とは異なる第２記憶領域にそれぞれ格納されているとする。なお、メモリー４２１やストレージ４２２はそれぞれ、画像処理装置４０に内蔵されるものに代えて、外部ストレージ４２３と同様に、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００３５】
第１プログラム４２２１は、ＣＰＵ４１により実行されることで第２プログラム４２２２及び第３プログラム４２２３とは異なるソフトウェアを実現するプログラムを示し、この一例において、ＣＰＵ４１により実行されることでＯＳを実現するプログラムを示すが、他のソフトウェアを実現するプログラムであってもよい。例えば、ＣＰＵ４１により第１プログラム４２２１が実行されることで実現するＯＳは、ＬＩＮＵＸ（登録商標）をベースに構築されるＯＳであるとするが、ＵＮＩＸ（登録商標）等の他のＯＳであってもよい。以下では、説明の便宜上、このＯＳを通常時起動ＯＳと称して説明し、第１プログラム４２２１の更新を通常時起動ＯＳの更新と称して説明する。
【００３６】
第２プログラム４２２２は、ＣＰＵ４１により実行されることで第１プログラム４２２１及び第３プログラム４２２３とは異なるソフトウェアを実現するプログラムを示し、この一例において、通常時起動ＯＳ上で動作するアプリケーションソフトウェアを実現するための１以上のプログラムを示す。
【００３７】
第３プログラム４２２３は、ＣＰＵ４１により実行されることで第１プログラム４２２１及び第２プログラム４２２２とは異なるソフトウェアを実現するプログラムを示し、この一例において、ＣＰＵ４１により実行されることでＯＳを実現するプログラムを示すが、他のソフトウェアを実現するプログラムであってもよい。例えば、ＣＰＵ４１により第３プログラム４２２３が実行されることで実現するＯＳは、通常時起動ＯＳが何らかの理由によって起動不可能な場合や、第１プログラム４２２１の一部又は全部を更新する場合等に起動されるＯＳである。また、ＣＰＵ４１により第３プログラム４２２３が実行されることで実現するＯＳは、ＬＩＮＵＸ（登録商標）をベースに構築されるＯＳであるとするが、他のＯＳであってもよい。以下では、説明の便宜上、このＯＳを障害時起動ＯＳと称して説明する。
【００３８】
外部ストレージ４２３は、例えば、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置である。外部ストレージ４２３は、更新ファイル４２３１等を格納する。なお、外部ストレージ４２３は、外部記憶装置の一例である。
【００３９】
更新ファイル４２３１は、通常時起動ＯＳ（すなわち、第１プログラム４２２１）を更新するためのプログラムファイルである。この一例において、更新ファイル４２３１は、ｅｘｔ３（third  extended  file  system）やｉｓｏ９６６０等の規格に基づいたイメージファイルであり、インストーラーや、通常時起動ＯＳの更新データを含む。
【００４０】
このインストーラーは、パスワード付きの圧縮ファイルであり、通常時起動ＯＳを更新するための通常時起動ＯＳ更新プログラムを含む。インストーラーに含まれる通常時起動ＯＳの更新プログラムは、障害時起動ＯＳにより実行されることで、通常時起動ＯＳの更新データを用いて通常時起動ＯＳの更新を行う。なお、通常時起動ＯＳの更新データの形式は、通常時起動ＯＳの更新プログラムに応じた形式であれば如何なる形式でもよい。
【００４１】
例えば、通常時起動ＯＳの更新プログラムによる更新の内容が、シェルスクリプトによるコマンドでテキストを追記することであった場合、通常時起動ＯＳの更新データは、外部ストレージ４２３に含まれていなくてもよい（存在しなくてもよい）。また、通常時起動ＯＳの更新プログラムによる更新の内容が、特定のディレクトリに複数のデータファイルをコピーすることであった場合、通常時起動ＯＳの更新データは、それら複数のデータファイルを含む。
【００４２】
ここで、図３を参照して、更新ファイル４２３１について説明する。図３は、外部ストレージ４２３に格納された複数のファイルを例示する図である。図３に示したように、外部ストレージ４２３には、更新ファイル４２３１が含まれる。また、この一例において、外部ストレージ４２３には、図３に示したように、更新ファイル４２３１に加えて、更新ファイル４２３１のチェックサムファイルや、リリースノートファイル、エンドユーザー使用許諾契約書（ＥＵＬＡ、End  User  License  Agreement）ファイルが含まれる構成であるとするが、これらの一部又は全部が含まれていない構成であってもよい。チェックサムファイルとは、障害時起動ＯＳにより実行されることで更新ファイル４２３１が正常か否かを確認するプログラムファイルである。なお、更新ファイル４２３１は、第１データの一例である。
【００４３】
入力受付部４３は、例えば、内蔵型又は外付け型のキーボードやマウスであるが、これらに代えて、タッチパッドや、その他の入力装置であってもよい。タッチパッドの場合、入力受付部４３は、タッチパネルとして表示部４５と一体に構成されてもよい。この一例において、入力受付部４３は、外付け型のキーボードであるとして説明する。
【００４４】
通信部４４は、外部通信部４４１と、第１撮像通信部４４２と、第２撮像通信部４４３を備える。
外部通信部４４１は、例えば、複数のイーサネット（登録商標）ポートや複数のＵＳＢ等のデジタル入出力ポート等を含んで構成される。この一例において、外部通信部４４１は、２個のイーサネット（登録商標）ポートを含む構成であるとして説明する。
【００４５】
第１撮像通信部４４２は、複数のイーサネット（登録商標）ポートや複数のＵＳＢ等のデジタル入出力ポート等を含んで構成され、それらのポートは、撮像装置１０と通信を行うための専用ポートである。なお、第１撮像通信部４４２は、音声を取得するための音声取得装置等の他の装置と通信を行うための専用ポートであってもよい。
【００４６】
第２撮像通信部４４３は、複数のイーサネット（登録商標）ポートや複数のＵＳＢ等のデジタル入出力ポート等を含んで構成され、それらのポートは、撮像装置１０と通信を行うための専用ポートである。なお、第２撮像通信部４４３は、音声を取得するための音声取得装置等の他の装置と通信を行うための専用ポートであってもよい。
第１撮像通信部４４２と第２撮像通信部４４３は、それぞれが備えるポートの通信規格が異なる。この一例において、第１撮像通信部４４２は、４つのイーサネット（登録商標）ポートを含んで構成され、第２撮像通信部４４３は、４つのＵＳＢポートを含んで構成されるとする。
【００４７】
表示部４５は、例えば、外付け型の液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルであるが、これに代えて、内蔵型の液晶ディスプレイパネルや有機ＥＬディスプレイパネルであってもよい。
【００４８】
検出部４６は、画像処理装置４０が備える複数のハードウェアそれぞれの状態を示す指標となる物理量を検出するための複数のセンサーである。この一例において、画像処理装置４０が備える複数のハードウェアとは、図示しないＣＰＵ４１の冷却ファン、図示しない画像処理装置４０の筐体内部を冷却するシステムファン、ＣＰＵ４１、図示しない画像処理装置４０に内蔵されるＢＩＯＳ（Basic  Input  Output  System）バックアップ用の電池等を示すが、他のハードウェアであってもよい。
【００４９】
次に、図４を参照して、通常時起動ＯＳが起動中の画像処理装置４０の機能構成について説明する。図４は、通常時起動ＯＳが起動中の画像処理装置４０の機能構成の一例を示す図である。画像処理装置４０は、記憶部４２と、通信部４４と、表示部４５と、検出部４６と、制御部４７−１を備える。制御部４７−１が備える機能部のうち一部又は全部は、例えば、ＣＰＵ４１が、記憶部４２に記憶された第１プログラム４２２１及び第２プログラム４２２２を実行することで実現される。
【００５０】
また、これらの機能部のうち一部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。なお、この一例において、撮像装置１０は、第１撮像通信部４４２に接続されているとし、第２撮像通信部４４３には、撮像装置が接続されていないとして説明する。
【００５１】
制御部４７−１は、画像処理装置４０の全体を制御する。制御部４７−１は、アプリ更新部４７０と、通信制御部４７１と、撮像制御部４７２と、画像取得部４７３と、画像処理部４７４を備える。
アプリ更新部４７０は、第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部がＣＰＵ４１により実行されることで実現するアプリケーションソフトウェアの更新の要求を、外部通信部４４１を介して情報処理装置５から取得すると、その要求に応じて、第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部を更新するアプリ更新処理を行う。なお、アプリ更新部４７０は、第２更新部の一例である。
【００５２】
通信制御部４７１は、画像処理部４７４により算出される作業対象Ｍの位置及び姿勢を示す情報を制御装置３０に出力する。
撮像制御部４７２は、第１撮像通信部４４２を介して、作業対象Ｍを含む範囲を撮像するように撮像装置１０を制御する。また、撮像制御部４７２は、第２撮像通信部４４３に何らかの撮像装置Ｚが接続されている場合、第２撮像通信部４４３を介して、撮像装置Ｚが撮像可能な範囲を撮像するように撮像装置Ｚを制御する。
【００５３】
画像取得部４７３は、第１撮像通信部４４２を介して、撮像装置１０から撮像画像を取得する。また、画像取得部４７３は、第２撮像通信部４４３に撮像装置Ｚが接続されている場合、第２撮像通信部４４３を介して、撮像装置Ｚから撮像画像を取得する。
画像処理部４７４は、画像取得部４７３により取得された撮像画像に基づいて、作業対象Ｍの位置及び姿勢を算出する画像処理を行う。なお、画像処理部４７４は、処理部の一例である。
【００５４】
次に、図５を参照して、障害時起動ＯＳが起動中の画像処理装置４０の機能構成について説明する。図５は、障害時起動ＯＳが起動中の画像処理装置４０の機能構成の一例を示す図である。画像処理装置４０は、記憶部４２と、通信部４４と、表示部４５と、検出部４６と、制御部４７−２を備える。制御部４７−２が備える機能部のうち一部又は全部は、例えば、ＣＰＵ４１が、記憶部４２に記憶された第３プログラム４２２３を実行することで実現される。また、これらの機能部のうち一部は、ＬＳＩやＡＳＩＣ等のハードウェア機能部であってもよい。
【００５５】
制御部４７−２は、画像処理装置４０の全体を制御する。制御部４７−２は、ファイル確認部４７５と、ＯＳ更新部４７６と、表示制御部４７７を備える。
ファイル確認部４７５は、表示制御部４７７が表示部４５に表示させるＧＵＩを介して通常時起動ＯＳを更新させるＯＳ更新処理の実行がユーザーにより選択された場合、画像処理装置４０に接続された外部ストレージ４２３に更新ファイル４２３１が格納されていることを確認する（格納されているか否かを判定する）。
【００５６】
ＯＳ更新部４７６は、ファイル確認部４７５により外部ストレージ４２３に更新ファイル４２３１が格納されていることが確認された（格納されていると判定された）場合、外部ストレージ４２３に格納された更新ファイル４２３１に基づいて第１プログラム４２２１を更新する（すなわち、ＯＳ更新処理を行う）。なお、ＯＳ更新部４７６は、第１更新部の一例である。
表示制御部４７７は、障害時起動ＯＳの動作に係るＣＵＩ（Command  User  Interface）又はＧＵＩを表示するように表示部４５を制御する。この一例において、表示制御部４７７は、ＣＵＩを表示するように表示部４５を制御するとして説明する。
【００５７】
以下、図６を参照して、制御部４７−１が行うアプリ更新処理について説明する。図６は、制御部４７−１が行うアプリ更新処理の流れの一例を示すフローチャートである。以下、第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部がＣＰＵ４１により実行されることで実現するアプリケーションソフトウェアの更新の要求を、制御部４７−１が外部通信部４４１を介して情報処理装置５から取得した後の処理について説明する。
【００５８】
まず、アプリ更新部４７０は、情報処理装置５から第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部を更新するために必要な更新用ファイルを取得する。以下では、説明の便宜上、この更新用ファイルをアプリ更新用ファイルと称して説明する。そして、アプリ更新部４７０は、取得されたアプリ更新用ファイルに基づいて、第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部の更新を行う（ステップＳ１１０）。以下では、説明の便宜上、第２プログラム４２２２に含まれる１以上のプログラムのうちの一部又は全部の更新を、単に第２プログラム４２２２の更新と称して説明する。なお、アプリ更新用ファイルは、第２データの一例である。
【００５９】
次に、アプリ更新部４７０は、ステップＳ１１０で行われた第２プログラム４２２２の更新が成功したか否かを判定する（ステップＳ１２０）。第２プログラム４２２２の更新が成功したと判定した場合（ステップＳ１２０−Ｙｅｓ）、通信制御部４７１は、外部通信部４４１を介して情報処理装置５に第２プログラム４２２２の更新の成功を示す情報を送信する（ステップＳ１３０）。一方、第２プログラム４２２２の更新が成功していないと判定した場合（ステップＳ１２０−Ｎｏ）、通信制御部４７１は、外部通信部４４１を介して情報処理装置５に第２プログラム４２２２の更新のエラーを示す情報を送信する（ステップＳ１４０）。
【００６０】
以下、図７を参照して、制御部４７−２が行うＯＳ更新処理について説明する。図７は、制御部４７−２が行うＯＳ更新処理の流れの一例を示すフローチャートである。以下、画像処理装置４０において障害時起動ＯＳが起動された後の処理について説明する。まず、表示制御部４７７は、障害時起動ＯＳのメニューを表示させるためのＣＵＩを表示するように表示部４５を制御する（ステップＳ２１０）。
【００６１】
ここで、図８を参照して、障害時起動ＯＳのメニューを表示するためのＣＵＩについて説明する。図８は、障害時起動ＯＳのメニューを表示するためのＣＵＩの一例を示す図である。このＣＵＩには、例えば、図８に示したように５つの選択可能な障害時起動ＯＳの動作を示すメニューが表示される。この一例において、５つの選択可能な動作はそれぞれ、以下に示す動作である。なお、以下に示す５つの動作はそれぞれ、図８に示したＣＵＩに表示された５つの動作を日本語に変換したものである。
【００６２】
１．ｘｘｘの設定のリセット（初期化）
２．ｙｙｙの設定のリセット（初期化）
３．通常時起動ＯＳの更新
９．Ｓｈｅｌｌの起動
０．障害時起動ＯＳを終了し、通常時起動ＯＳを再起動
【００６３】
この一例において、「ｘｘｘの設定」は、画像処理部４７４が行う画像処理の設定を示すが、他の設定であってもよい。また、「ｙｙｙの設定」は、画像処理装置４０の設定を示すが、他の設定であってもよい。画像処理装置４０は、図８に示したＣＵＩを介して、入力受付部４３によりユーザーから所望の動作を示す数字（上記の１〜３、９、０のうちのいずれか）を受け付けることで、受け付けられた数字が示す動作を行う。図８には、上記の「３．通常時起動ＯＳの更新」が選択された状態が示されている。
【００６４】
次に、制御部４７−２は、ステップＳ２１０で表示されたＣＵＩを介して、入力受付部４３によりユーザーから所望の動作を示す数字を受け付ける（ステップＳ２２０）。以下では、ステップＳ２２０でユーザーが上記の「３．通常時起動ＯＳの更新」を選択したとして説明する。ステップＳ２２０でユーザーが上記の「３．通常時起動ＯＳの更新」を選択すると、表示制御部４７７は、図９に示したＣＵＩを表示するように表示部４５を制御する。
【００６５】
図９は、通常時起動ＯＳの更新を実行した時に生じる事象への警告を表示するととともに、通常時起動ＯＳの更新を実行するか否かの確認を行うＣＵＩの一例を示す。この一例において、通常時起動ＯＳの更新の実行は、図９に示した警告に表示されているように、すべてのデータを消してしまうという事象を起こすが、これに代えて、一部のデータを消してしまう構成等、他の事象を起こす構成であってもよい。以下では、制御部４７−２がステップＳ２２０において、通常時起動ＯＳの更新を実行することを了承する操作（この一例において、「ｙｅｓ」と入力する操作）を入力受付部４３によりユーザーから受け付けたとして説明する。
【００６６】
ステップＳ２２０で入力受付部４３によりユーザーから通常時起動ＯＳの更新を実行することを了承する操作を制御部４７−２が受け付けた場合、ファイル確認部４７５は、画像処理装置４０に接続された外部ストレージ４２３に更新ファイル４２３１が格納されているか否かを判定（確認）する（ステップＳ２３０）。外部ストレージ４２３に更新ファイル４２３１が格納されていないとファイル確認部４７５が判定した場合（ステップＳ２３０−Ｎｏ）、表示制御部４７７は、エラーを示す情報を表示するためのＣＵＩを表示するように表示部４５を制御する（ステップＳ２５０）。一方、外部ストレージ４２３に更新ファイル４２３１が格納されているとファイル確認部４７５が判定した場合（ステップＳ２３０−Ｙｅｓ）、ＯＳ更新部４７６は、通常時起動ＯＳを更新するＯＳ更新処理を行う（ステップＳ２４０）。
【００６７】
ここで、通常時起動ＯＳを更新するＯＳ更新処理について説明する。ＯＳ更新部４７６は、外部ストレージ４２３に格納されたチェックサムファイルを実行し、更新ファイル４２３１が正常か否かを判定（確認）する。チェックサムファイルによって更新ファイル４２３１が正常ではないと判定された場合、ＯＳ更新部４７６は、更新ファイル４２３１が不正な更新ファイルであるとし、ステップＳ２６０の判定で通常時起動ＯＳの更新に失敗したと判定する。
【００６８】
一方、ＯＳ更新部４７６は、チェックサムファイルによって更新ファイル４２３１が正常であると判定された場合、更新ファイル４２３１を、例えば、所定のマウントポイント（ディレクトリ）にマウントする。この際、更新ファイル４２３１がマウントポイントにマウントすることができなかった場合、ＯＳ更新部４７６は、更新ファイル４２３１が不正な更新ファイルであるとし、ステップＳ２６０の判定で通常時起動ＯＳの更新に失敗したと判定する。
【００６９】
一方、更新ファイル４２３１がマウントポイントにマウントされた場合、ＯＳ更新部４７６は、外部ストレージ４２３に格納された更新ファイル４２３１に含まれるインストーラーを、障害時起動ＯＳに予め記憶されたパスワードを用いて外部ストレージ４２３に解凍する。この際、障害時起動ＯＳに予め記憶されたパスワードを用いたインストーラーの解凍が失敗した場合、ＯＳ更新部４７６は、更新ファイル４２３１が不正な更新ファイルであるとし、ステップＳ２６０の判定で通常時起動ＯＳの更新に失敗したと判定する。
【００７０】
一方、障害時起動ＯＳに予め記憶されたパスワードを用いたインストーラーの解凍が成功した場合、ＯＳ更新部４７６は、解凍された通常時起動ＯＳの更新プログラムを実行し、通常時起動のＯＳ更新データに基づいて通常時起動ＯＳの更新を実行する。この通常時起動ＯＳの更新を実行する際、ＯＳ更新部４７６は、更新前の通常時起動ＯＳを、外部ストレージ４２３の記憶領域にバックアップする。これにより、ＯＳ更新部４７６は、通常時起動ＯＳの更新の実行中に何らかの理由によって通常時起動ＯＳが破損した場合、外部ストレージ４２３にバックアップされた通常時起動ＯＳを用いて、ストレージ４２２に記憶された通常時起動ＯＳを復旧させることができる。
【００７１】
次に、ＯＳ更新部４７６は、ステップＳ２４０で行われた通常時起動ＯＳの更新が成功したか否かを判定する（ステップＳ２６０）。通常時起動ＯＳの更新が成功していない（失敗した）と判定した場合、表示制御部４７７は、表示部４５がエラーを示す情報を表示するように制御し（ステップＳ２８０）、処理を終了する。一方、通常時起動ＯＳの更新が成功したと判定した場合、表示制御部４７７は、図１０に示すように、表示部４５が通常時起動ＯＳの更新の成功を示す情報を表示するＣＵＩを表示するように制御し（ステップＳ２８０）、処理を終了する。図１０は、通常時起動ＯＳの更新の成功を示す情報を表示するＣＵＩの一例を示す図である。
【００７２】
このように、画像処理装置４０は、通常時起動ＯＳの更新を外部ストレージ４２３を利用して行うため、ストレージ４２２の空き容量が少ない場合であっても、更新前の通常時起動ＯＳを外部ストレージ４２３にバックアップする等、通常時起動ＯＳの更新に係る処理をストレージ４２２の空き容量とは無関係に行うことができる。
また、画像処理装置４０は、通常時起動ＯＳの更新を外部ストレージ４２３を利用して行うため、例えば、工場内のような閉じられたネットワーク内に画像処理装置４０が接続されている場合であっても、通常時起動ＯＳの更新を容易に行うことができる。
また、画像処理装置４０は、ここまで説明してきたように通常時起動ＯＳの更新を容易に行うことができるため、通常時起動ＯＳに起因する致命的な不具合や脆弱性に対する補完処置を迅速に行うことができるとともに、例えば、画像処理に係るアプリケーションソフトウェアの機能及び性能を向上させるためのアプリ更新処理を行うことができる。
【００７３】
以上説明したように、本実施形態におけるロボットシステム１が具備する画像処理装置４０において、第１プログラム４２２１は、外部ストレージ４２３に記憶された更新ファイル４２３１を用いて更新され、第２プログラム４２２２は、情報処理装置５に記憶されたアプリ更新用ファイルを用いて更新される。これにより、画像処理装置４０は、プログラムを容易に更新することができる。
【００７４】
また、画像処理装置４０は、第１プログラム４２２１及び第２プログラム４２２２とは異なる第３プログラム４２２３が実行されることで動作し、外部ストレージ４２３に記憶された更新ファイル４２３１を読み込み、読み込まれた更新ファイル４２３１に基づいて第１プログラム４２２１を更新する。これにより、画像処理装置４０は、第１プログラム４２２１を実行することなく、第１プログラム４２２１を更新することができるため、第１プログラム４２２１の実行中に第１プログラム４２２１の更新を行うことによって第１プログラム４２２１が破損してしまうこと抑制することが出来る。
【００７５】
また、画像処理装置４０は、外部ストレージ４２３の記憶領域に更新前の第１プログラム４２２１をバックアップし、その後、更新ファイル４２３１に基づいて第１プログラム４２２１を更新する。これにより、画像処理装置４０は、自装置の記憶領域にバックアップ用の記憶領域を確保する必要が無く、自装置の記憶領域の確保に係るコストを低減することができる。
【００７６】
また、画像処理装置４０は、外部ストレージ４２３に更新ファイル４２３１が記憶されているか否かを判定し、外部ストレージ４２３に更新ファイル４２３１が記憶されていないと判定された場合、エラーを示す情報を表示部４５に表示させ、外部ストレージ４２３に更新ファイル４２３１が記憶されていると判定された場合、更新ファイル４２３１に基づいて第１プログラム４２２１を更新する。これにより、画像処理装置４０は、外部ストレージ４２３に更新ファイル４２３１が記憶されていない状態で誤って第１プログラム４２２１の更新が継続されてしまうことを抑制することができる。
【００７７】
また、画像処理装置４０は、第１プログラム４２２１が実行されることで動作し、外部通信部４４１を介して情報処理装置５からアプリ更新用ファイルを取得し、取得されたアプリ更新用ファイルに基づいて第２プログラム４２２２を更新する。これにより、画像処理装置４０は、情報処理装置５によって第２プログラム４２２２を容易に更新することができる。
【００７８】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００７９】
また、以上に説明した装置（例えば、ロボットシステム１の画像処理装置４０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【００８０】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００８１】
１  ロボットシステム、５  情報処理装置、１０  撮像装置、２０  ロボット、３０  制御装置、４０  画像処理装置、４１  ＣＰＵ、４２  記憶部、４３  入力受付部、４４  通信部、４５  表示部、４６  検出部、４７−１、４７−２  制御部、４２１  メモリー、４２２  ストレージ、４２３  外部ストレージ、４４１  外部通信部、４４２  第１撮像通信部、４４３  第２撮像通信部、４７０  アプリ更新部、４７１  通信制御部、４７２  撮像制御部、４７３  画像取得部、４７４  画像処理部、４７５  ファイル確認部、４７６  ＯＳ更新部、４７７  表示制御部、４２２１  第１プログラム、４２２２  第２プログラム、４２２３  第３プログラム、４２３１  更新ファイル
【図１】
0006547260.tif 000002
【図２】
0006547260.tif 000003
【図３】
0006547260.tif 000004
【図４】
0006547260.tif 000005
【図５】
0006547260.tif 000006
【図６】
0006547260.tif 000007
【図７】
0006547260.tif 000008
【図８】
0006547260.tif 000009
【図９】
0006547260.tif 000010
【図１０】
0006547260.tif 000011