(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142198
(43)【公開日】2024-10-10
(54)【発明の名称】同期制御方法および同期制御システム
(51)【国際特許分類】
H04N 23/60 20230101AFI20241003BHJP
【FI】
H04N23/60
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023054259
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】渕上 竜司
(72)【発明者】
【氏名】山倉 佑馬
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA03
5C122EA65
5C122EA67
5C122FA17
5C122FA18
5C122FH10
5C122FH14
5C122HA82
5C122HA88
5C122HB01
5C122HB02
(57)【要約】
【課題】カメラとサーボモータとを同期させ、対象物に対する追従精度を向上させる。
【解決手段】同期制御方法は、基準時刻による時刻合わせを実行し、基準時刻に基づいて、カメラが露光する露光期間の中央時刻を決定して、決定された中央時刻に基づいて露光して被写体を撮像する第1処理と、基準時刻に基づいて、中央時刻におけるサーボモータの位置を取得する第2処理とを実行し、中央時刻におけるサーボモータの位置と、被写体が撮像されたフレームとに基づいて、フレームから被写体を検出し、検出された被写体の位置に基づいて、サーボモータを駆動する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
被写体を撮像する少なくともカメラから前記被写体が撮像されたフレームを取得可能な少なくとも1台の画像処理装置と、
前記画像処理装置との間で通信可能であって、前記カメラの位置を移動させるサーボモータを制御する少なくとも1台のコントローラと、を備える同期制御システムが行う同期制御方法であって、
基準時刻による時刻合わせを実行し、
前記基準時刻に基づいて、前記カメラが露光する露光期間の中央時刻を決定して、決定された前記中央時刻に基づいて露光して前記被写体を撮像する第1処理と、前記基準時刻に基づいて、前記中央時刻における前記サーボモータの位置を取得する第2処理とを実行し、
前記中央時刻における前記サーボモータの位置と、前記被写体が撮像された前記フレームとに基づいて、前記フレームから前記被写体を検出し、
検出された前記被写体の位置に基づいて、前記サーボモータを駆動する、
同期制御方法。
【請求項2】
前記中央時刻における前記被写体の位置と、前記サーボモータの位置との差分に基づいて、前記サーボモータの位置の補正量を算出する、
請求項1に記載の同期制御方法。
【請求項3】
前記中央時刻における前記被写体の位置と、前記サーボモータの位置との差分に基づいて、前記被写体の移動速度を計測する、
請求項1に記載の同期制御方法。
【請求項4】
前記中央時刻における前記被写体の位置と、前記サーボモータの位置との差分に基づいて、前記被写体に働く外乱を計測する、
請求項1に記載の同期制御方法。
【請求項5】
前記画像処理装置あるいは前記コントローラうちいずれかが、自装置以外の前記画像処理装置あるいは前記コントローラに前記基準時刻を送信する、
請求項1に記載の同期制御方法。
【請求項6】
前記同期制御システムは、
前記画像処理装置および前記コントローラと通信可能に接続された外部装置をさらに備え、
前記外部装置は、前記画像処理装置および前記コントローラのそれぞれに前記基準時刻を送信する、
請求項1に記載の同期制御方法。
【請求項7】
前記カメラのフレームレートは、960fps以上である、
請求項1に記載の同期制御方法。
【請求項8】
被写体を撮像する少なくともカメラから前記被写体が撮像されたフレームを取得可能な少なくとも1台の画像処理装置と、
前記画像処理装置との間で通信可能であって、前記カメラの位置を移動させるサーボモータを制御する少なくとも1台のコントローラと、を備える同期制御システムであって、
前記画像処理装置および前記コントローラは、
基準時刻による時刻合わせを実行し、
前記画像処理装置は、
前記基準時刻に基づいて、前記カメラが露光する露光期間の中央時刻を決定し、決定された前記中央時刻に基づいて露光して撮像されたフレームを前記カメラから取得して、前記フレームの少なくとも一部の検出画素から前記被写体を検出する第1処理を実行し、
前記コントローラは、
前記基準時刻に基づいて、前記中央時刻における前記サーボモータの位置を取得して、前記画像処理装置に送信する第2処理を実行し、
前記画像処理装置は、
前記中央時刻における前記サーボモータの位置と、前記被写体が撮像された前記フレームとに基づいて、前記フレームから前記被写体の位置を検出して前記コントローラに送信し、
前記コントローラは、
送信された前記被写体の位置に基づいて、前記サーボモータを駆動する、
同期制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、同期制御方法および同期制御システムに関する。
【背景技術】
【0002】
特許文献1には、ロボットの可動部のエンドポイントを移動させる第1指令値を足し合わせた第2指令値を用いて可動部を制御するロボット制御装置が開示されている。ロボット制御装置は、撮像装置から取得された画像に基づいて、目標物の追跡を実行する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の構成では、撮像装置により撮像されるフレームの撮像タイミング(撮像時刻)と、エンコーダ値の読み出しタイミング(時刻)とを揃える制御を実行していないため、撮像時刻におけるロボットのアーム位置が分からず、現在位置を目標位置に移動させる移動制御において位置ずれが発生する可能性があった。また、従来のロボット制御装置は、フレームに写るエンドポイントの位置と目標物の位置とに基づいて目標物の追跡を実行する場合も同様に、フレームの撮像タイミング(撮像時刻)と、エンコーダ値の読み出しタイミング(時刻)とを揃える制御を実行していないため、フレームに写るエンドポイントの位置と、読み出されたエンコーダ値が示すエンドポイントの位置とが異なる可能性があった。
【0005】
本開示は、上述した従来の事情に鑑みて案出され、カメラとサーボモータとを同期させ、対象物に対する追従精度を向上させる同期制御方法および同期制御システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示は、被写体を撮像する少なくともカメラから前記被写体が撮像されたフレームを取得可能な少なくとも1台の画像処理装置と、前記画像処理装置との間で通信可能であって、前記カメラの位置を移動させるサーボモータを制御する少なくとも1台のコントローラと、を備える同期制御システムが行う同期制御方法であって、基準時刻による時刻合わせを実行し、前記基準時刻に基づいて、前記カメラが露光する露光期間の中央時刻を決定して、決定された前記中央時刻に基づいて露光して前記被写体を撮像する第1処理と、前記基準時刻に基づいて、前記中央時刻における前記サーボモータの位置を取得する第2処理とを実行し、前記中央時刻における前記サーボモータの位置と、前記被写体が撮像された前記フレームとに基づいて、前記フレームから前記被写体を検出し、検出された前記被写体の位置に基づいて、前記サーボモータを駆動する、同期制御方法を提供する。
【0007】
また、本開示は、被写体を撮像する少なくともカメラから前記被写体が撮像されたフレームを取得可能な少なくとも1台の画像処理装置と、前記画像処理装置との間で通信可能であって、前記カメラの位置を移動させるサーボモータを制御する少なくとも1台のコントローラと、を備える同期制御システムであって、前記画像処理装置および前記コントローラは、基準時刻による時刻合わせを実行し、前記画像処理装置は、前記基準時刻に基づいて、前記カメラが露光する露光期間の中央時刻を決定し、決定された前記中央時刻に基づいて露光して撮像されたフレームを前記カメラから取得して、前記フレームの少なくとも一部の検出画素から前記被写体を検出する第1処理を実行し、前記コントローラは、前記基準時刻に基づいて、前記中央時刻における前記サーボモータの位置を取得して、前記画像処理装置に送信する第2処理を実行し、前記画像処理装置は、前記中央時刻における前記サーボモータの位置と、前記被写体が撮像された前記フレームとに基づいて、前記フレームから前記被写体の位置を検出して前記コントローラに送信し、前記コントローラは、送信された前記被写体の位置に基づいて、前記サーボモータを駆動する、同期制御システムを提供する。
【発明の効果】
【0008】
本開示によれば、カメラとサーボモータとを同期させ、対象物に対する追従精度を向上できる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1に係るモータ制御システムの全体構成例を示すブロック図
【
図2】実施の形態1における画像処理装置およびサーボコントローラの内部構成例を示すブロック図
【
図3】実施の形態1に係るモータ制御システムの動作手順例を示すシーケンス図
【
図4】実施の形態1における画像処理装置およびサーボコントローラの動作手順例を示すシーケンス図
【
図5】実施の形態1における画像処理装置およびサーボコントローラの動作手順を示すタイムチャート
【
図6】従来の画像処理装置とサーボモータとの動作処理例を説明する比較図
【
図7】本開示の画像処理装置とサーボモータとの動作処理例を説明する比較図
【
図8】実施の形態2に係るモータ制御システムの全体構成例を示すブロック図
【
図9】実施の形態2に係るモータ制御システムの動作手順例を示すシーケンス図
【発明を実施するための形態】
【0010】
(本開示に至る経緯)
近年、カメラにより対象物を撮像し、撮像されたフレームに写る対象物の位置を計測する画像処理装置と、サーボモータを駆動させ、ロボットアーム等に対象物に対して所定の作業を実行させるモータ制御装置とを用いた制御システムがある。このような制御システムは、画像処理装置により計測された対象物の位置と、エンコーダにより読み出されたエンコーダの位置情報とに基づいて、対象物に対するロボットアームの位置を補正するためにサーボモータの移動量を算出する。制御システムは、算出されたサーボモータの移動量に基づいて、モータ制御装置によるサーボモータの駆動制御を実行することで、対象物に対して所定の作業を実現可能にする。
【0011】
しかし、従来のモータ制御装置は、サーボモータと、このサーボモータを制御するための専用のコントローラ(制御装置)とを用いて構成されており、コントローラにより位置情報を指定することでサーボモータが駆動する仕組みであり、指定された位置情報への移動が完了した後にサーボモータの移動完了通知が出力されるため、所定の時間におけるサーボモータの位置(エンコーダ値)を取得することが困難だった。また、従来の画像処理装置は、外部装置であるモータ制御装置から出力されるサーボモータのパラメータを用いずに画像処理を実行していた。これにより、従来のモータ制御装置は、エンコーダの位置情報が取得された実際の時刻情報が分からず、また、画像処理により得られた対象物の位置に対応する時刻情報が分からないため、モータ制御装置による対象物への追従精度が低下したり、追従が遅れたりする等の課題があった。
【0012】
よって、以下に示す各実施の形態においては、カメラとサーボモータとを同期させ、対象物に対する追従精度を向上させる同期制御方法および同期制御システムの例を説明する。
【0013】
以下、適宜図面を参照しながら、本開示に係る同期制御方法および同期制御システムの構成および作用を具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0014】
なお、以降の説明において、用語「画像処理装置」は、各画像処理装置とでデータ送受信可能に接続されたカメラおよび照明を含む装置として称することがある。
【0015】
(実施の形態1)
図1を参照して、実施の形態1に係るモータ制御システム100の全体構成例について説明する。
図1は、実施の形態1に係るモータ制御システム100の内部構成例を示すブロック図である。
【0016】
システム,画像処理システム,同期制御システムの一例としてのモータ制御システム100は、N(N:1以上の整数)台のサーボコントローラ(具体的に、第1サーボコントローラS1~第NサーボコントローラSN)と、K(K:1以上の整数)台の画像処理装置(具体的に、第1画像処理装置Im1~第K画像処理装置ImK)とを含んで構成される。なお、サーボコントローラの台数Nと、画像処理装置の台数Kとは同じ値であってもよいし、異なる値であってもよい。
【0017】
モータ制御システム100は、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれと、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとのうちいずれか1台の装置(つまり、サーボコントローラまたは画像処理装置)により、時刻合わせを実行する。モータ制御システム100は、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれと、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとを同期時刻で同期,連携させて、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれの画像処理結果(つまり、対象物の位置)に基づいて、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれによる対象物の追従を実行させる。
【0018】
コントローラの一例としての第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、自サーボコントローラ以外の他のサーボコントローラおよび第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとの間でデータ送受信可能に接続される。
【0019】
各サーボモータは、エンコーダと、モータドライバと、サーボモータとを含む。つまり、モータ制御システム100は、N台のエンコーダ(第1エンコーダEn1~第NエンコーダEnN)と、N台のモータドライバ(第1モータドライバMd1~第NモータドライバMdN)と、N台のサーボモータ(第1サーボモータSm1~第NサーボモータSmN)とを含む。
【0020】
第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、自画像処理装置以外の他の画像処理装置および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれとの間でデータ送受信可能に接続される。
【0021】
各画像処理装置は、カメラと、照明とを含む。つまり、モータ制御システム100は、K台のカメラ(第1カメラC1~第KカメラCK)と、K個の照明(第1照明L1~第K照明LK)とを含む。
【0022】
次に、
図2を参照して、実施の形態1における画像処理装置およびサーボコントローラの内部構成について説明する。
図2は、実施の形態1における画像処理装置およびサーボコントローラの内部構成例を示すブロック図である。なお、
図2では、説明を簡単にするために、モータ制御システム100の最小構成である第1画像処理装置Im1および第1サーボコントローラS1の内部構成例について説明する。
【0023】
第1画像処理装置Im1は、通信部10と、プロセッサ11と、メモリ12とを含む。
【0024】
通信部10は、第1カメラC1と、第1照明L1と、第1サーボコントローラS1との間でデータ送受信可能に接続される。通信部10は、データの送受信を行うための通信インターフェース回路を用いて構成される。通信部10は、第1カメラC1と、第1照明L1と、第1サーボコントローラS1との間を、CameraLink(登録商標)ケーブル、イーサネットケーブル、EtherCAT(登録商標)等を用いて有線通信可能に接続し、データの送受信を実現する。
【0025】
プロセッサ11は、例えばField Programmable Gate Array(以降、「FPGA」と称する)等のリアルタイムOperating System(以降、「OS」と称する)を用いて構成されて、メモリ12と協働して、各種の処理および制御を行う。具体的には、プロセッサ11は、メモリ12に保持されたプログラムおよびデータを参照し、そのプログラムを実行することにより、各部の機能を実現する。
【0026】
プロセッサ11は、第1カメラC1の露光開始および露光終了のタイミングと、第1照明の照明ON,OFFのタイミングとを決定し、第1カメラC1および第1照明のそれぞれを制御する。具体的に、プロセッサ11は、第1カメラC1の露光開始のタイミングから露光終了のタイミングまでの露光期間において、露光期間の半分のタイミングに対応する露光時刻(以降、「露光中央時刻」と称する)が、第1サーボコントローラS1から送信されるサーボモータの位置情報の読み出しタイミングと一致するように、第1カメラC1の露光開始および露光終了のタイミングと、第1照明の照明ON,OFFのタイミングとを決定する。
【0027】
プロセッサ11は、第1サーボコントローラS1から送信された第1エンコーダEn1のエンコーダの位置情報および第1サーボモータSm1の駆動電値情報のそれぞれを取得する。プロセッサ11は、第1エンコーダEn1のエンコーダの位置情報を用いたカルマンフィルタにより、フレームに写る対象物の位置を推定(予測)し、推定された位置に対応する画素データを第1カメラC1から取得する。プロセッサ11は、取得された画素データに山登り法(Hill Climbing Method)を用いた画像処理を実行し、対象物の位置を検出する。
【0028】
プロセッサ11は、決定された画素データの読み出し領域の情報を第1カメラC1に送信する。プロセッサ11は、第1カメラC1から送信された画素データを、メモリ12に記憶せずにそのまま画像処理し、対象物の位置を計測する。プロセッサ11は、画像処理結果である対象物の位置情報を第1サーボコントローラS1に送信する。これにより、プロセッサ11は、画像処理に要する時間を短縮し、高速での画像処理を実現できる。
【0029】
メモリ12は、例えばプロセッサ11の各処理を実行する際に用いられるワークメモリとしてのRandom Access Memory(以降、「RAM」と称する)と、プロセッサ11の動作を規定したプログラムおよびデータを格納するRead Only Memory(以降、「ROM」と称する)とを有する。RAMには、プロセッサ11により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、プロセッサ11の動作を規定するプログラムが書き込まれている。
【0030】
第1カメラC1は、少なくともレンズ(不図示)とイメージセンサ(不図示)とを有して構成される。イメージセンサは、例えばCharged-Coupled Device(以降、「CCD」と称する)またはComplementary Metal Oxide Semiconductor(以降、「CMOS」と称する)の固体撮像素子であり、撮像面に結像した光学像を電気信号に変換する。第1カメラC1は、例えば、960fps以上の高フレームレートで対象物を撮像する。
【0031】
第1カメラは、プロセッサ11から送信されたシャッタータイミング(露光開始指令および露光終了指令のそれぞれ)に基づいて、露光制御を実行する。また、第1カメラC1は、イメージセンサによる電気信号への変換処理後、プロセッサ11により要求された読み出し領域(例えば、
図5に示す読み出し領域AR1,AR2,AR3,AR4等)に含まれる画素データの読み出しと、読み出された画素データの送信とを順次実行する。
【0032】
第1照明L1は、少なくとも1つのLight-Emitting Diode(以降、「LED」と称する)により実現される。第1照明L1は、プロセッサ11から送信される発光開始指令および発光終了指令のそれぞれに基づいて、照明の発光開始,発光終了を制御して、対象物を照明する。
【0033】
第1サーボコントローラS1は、通信部20と、プロセッサ21と、メモリ22と、第1モータドライバMd1と、第1サーボモータSm1と、第1エンコーダEn1とを含む。
【0034】
通信部20は、第1画像処理装置Im1との間でデータ送受信可能に接続される。通信部20は、データの送受信を行うための通信インターフェース回路を用いて構成される。通信部20は、第1画像処理装置Im1との間を、HDMI(登録商標)ケーブル等を用いて有線通信可能に接続し、データの送受信を実現する。
【0035】
プロセッサ21は、例えばCentral Processing Unit(CPU)、FPGA等を用いて構成され、メモリ22と協働して、各種の処理および制御を行う。具体的には、プロセッサ21は、メモリ22に保持されたプログラムを参照し、そのプログラムを実行することにより、第1モータドライバMd1,第1サーボモータSm1,第1エンコーダEn1等の機能を実現する。
【0036】
プロセッサ21は、第1カメラC1の露光中央時刻に、第1エンコーダEn1からエンコーダフィードバック情報を取得する。なお、ここでいうエンコーダフィードバック情報は、第1サーボモータSm1の回転角度である。プロセッサ21は、第1サーボモータSm1の回転角度に基づいて、第1サーボモータSm1の位置を計測する。
【0037】
プロセッサ21は、第1画像処理装置Im1から送信された画像処理結果である対象物の位置情報と、現在の第1サーボモータSm1の位置情報とに基づいて、第1サーボモータSm1の位置の補正量を算出する。プロセッサ21は、算出された補正量に基づいて、第1サーボモータSm1を駆動させる電流制御指令を生成し、第1モータドライバMd1に出力する。
【0038】
メモリ22は、例えばプロセッサ21の各処理を実行する際に用いられるワークメモリとしてのRAMと、プロセッサ21の動作を規定したプログラムおよびデータを格納するROMとを有する。RAMには、プロセッサ21により生成あるいは取得されたデータもしくは情報が一時的に保存される。ROMには、プロセッサ21の動作を規定するプログラムが書き込まれている。
【0039】
第1モータドライバMd1は、プロセッサ21から出力される電流制御指令に基づいて第1サーボモータSm1を駆動(回転)させる。第1モータドライバMd1は、フィードバック制御により、電流制御指令に対応する第1サーボモータSm1の移動目標値と、第1モータドライバMd1の実際の制御量との差分を示す電流フィードバック情報を取得する。第1モータドライバMd1は、取得された電流フィードバック情報をプロセッサ21に出力する。
【0040】
第1エンコーダEn1は、第1サーボモータSm1の回転角度を検出可能であって、第1サーボモータSm1の回転角度の情報(エンコーダフィードバック情報)をプロセッサ21に出力(フィードバック)する。
【0041】
次に、
図3を参照して、実施の形態1に係るモータ制御システム100の動作手順例について説明する。
図3は、実施の形態1に係るモータ制御システム100の動作手順例を示すシーケンス図である。
【0042】
なお、
図3に示す例では、第1画像処理装置Im1が、他の画像処理装置(第2画像処理装置Im2~第K画像処理装置ImK)および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれの時刻情報を同期時刻に同期させる(つまり、時計合わせを実行する)マスターとして設定されている例を示すが、マスターに設定される装置は、他のいずれか1台の装置であってよい。
【0043】
モータ制御システム100は、ステップSt11の処理と、第1ループ処理Lp11とを実行する。なお、第1ループ処理Lp11のループ回数は、ステップSt11の時刻合わせ処理を実行する間隔によって任意の回数が設定されてよい。
【0044】
第1画像処理装置Im1は、同期される同期時刻情報を他の画像処理装置(第2画像処理装置Im2~第K画像処理装置ImK)および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれに送信し、各装置の時刻合わせを所定の間隔で繰り返し実行する(St11)。ここで、モータ制御システム100は、ステップSt11における時刻情報が各装置で同時受信できない場合、時刻合わせ(同期)処理が失敗したと判定して、第1ループ処理Lp11に移行し、次のステップSt11の処理まで時刻合わせ処理を延期してよい。
【0045】
また、破線で示すように、第1サーボコントローラS1がマスターに設定される場合、第1サーボコントローラS1は、同期される同期時刻情報を第1画像処理装置Im1~第K画像処理装置ImKおよび第2サーボコントローラ(不図示)~第NサーボコントローラSNのそれぞれに送信し、各装置の時刻合わせを実行する(St11A)。
【0046】
第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、第1カメラC1~第KカメラCKおよび第1照明L1~第K照明LKのそれぞれを用いて、対象物の撮像処理を実行する(St100)。
【0047】
第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、第1カメラC1~第KカメラCKの露光中央時刻T0に、第1サーボモータSm1~第NサーボモータSmNのそれぞれの位置情報を取得するサーボモータ位置取得処理を実行する(St200)。
【0048】
第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、他のサーボコントローラおよび第1画像処理装置Im1~第K画像処理装置ImKに、取得されたサーボモータの位置情報を送信する(St12,St13)。
【0049】
例えば、第1サーボコントローラS1は、第2サーボコントローラ(不図示)~第NサーボコントローラSNと、第1画像処理装置Im1~第K画像処理装置ImKとに第1サーボモータSm1の位置情報を送信する(St12)。
【0050】
また、例えば、第NサーボコントローラSNは、第1サーボコントローラS1~第(N-1)サーボコントローラ(不図示)と、第1画像処理装置Im1~第K画像処理装置ImKとのそれぞれに第NサーボモータSmNの位置情報を送信する(St13)。
【0051】
なお、
図3に示すシーケンスでは、説明を分かりやすくするために、第1サーボコントローラS1が第1サーボモータSm1の位置情報を送信する処理をステップSt12で示し、第NサーボコントローラSNが第NサーボモータSmNの位置情報を送信する処理をステップSt13で示しているが、ステップSt12およびステップSt13の処理は、略同時刻に実行されてよい。
【0052】
モータ制御システム100は、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれによって第2ループ処理Lp21と、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれによって第3ループ処理Lp22とを並列に実行する。
【0053】
第2ループ処理Lp21において、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、ステップSt100の処理で撮像されたフレームと、ステップSt12~ステップSt13で取得された第1サーボモータSm1~第NサーボモータSmNのそれぞれの位置情報とに基づいて、略同時に画像処理を実行する(St300)。
【0054】
第3ループ処理Lp22において、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、第1サーボモータSm1~第NサーボモータSmNのそれぞれの駆動処理と、第1サーボモータSm1~第NサーボモータSmNのそれぞれの位置情報の取得処理とを実行する(St400)。第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、取得されたサーボモータの位置情報を、他のサーボコントローラのそれぞれに互いに送信する(St14)。
【0055】
第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、ステップSt300の画像処理により得られた画像処理結果である対象物の位置情報を、他の画像処理装置および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれに送信する(St15,St16)。
【0056】
例えば、第1画像処理装置Im1は、第1カメラC1により撮像されたフレーム(画素データ)を画像処理し、画像処理結果である対象物の位置情報を、第2画像処理装置(不図示)~第K画像処理装置ImKと、第1サーボコントローラS1~第NサーボコントローラSNとに対象物の位置情報を送信する(St15)。
【0057】
また、例えば、第K画像処理装置ImKは、第KカメラCKにより撮像されたフレーム(画素データ)を画像処理し、画像処理結果である対象物の位置情報を、第1画像処理装置Im1~第(K-1)画像処理装置(不図示)と、第1サーボコントローラS1~第NサーボコントローラSNとに対象物の位置情報を送信する(St16)。
【0058】
次に、
図4を参照して、画像処理装置およびサーボコントローラの動作手順例について説明する。
図4は、実施の形態1における画像処理装置(具体的に、第1画像処理装置Im1~第K画像処理装置ImK)およびサーボコントローラ(具体的に、第1サーボコントローラS1~第NサーボコントローラSN)の動作手順例を示すシーケンス図である。
【0059】
なお、
図4に示す例では、
図3に示す第1ループ処理Lp11で実行される動作手順について詳細に説明する。また、
図4では、説明を簡単にするために、モータ制御システム100の最小構成である第1画像処理装置Im1と第1サーボコントローラS1との間で実行される動作手順例について説明するためステップSt13,ステップSt16の処理を省略している。
【0060】
まず、ステップSt100の撮像処理について説明する。ステップSt100の撮像処理は、例えば、1kHzの周期で実行される。
【0061】
第1画像処理装置Im1は、第1カメラC1の露光開始および露光終了のタイミングと、第1照明L1の発光開始および発光終了のタイミングとをそれぞれ決定する(St101)。
【0062】
なお、第1画像処理装置Im1は、時刻合わせされた同期時刻を基準として、露光中央時刻T0と、発光開始および発光終了のタイミングとをそれぞれ決定する。例えば、露光中央時刻T0は、所定の周期(例えば、1kHz)ごとの周期で決定されてよい。
【0063】
これにより、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、シャッターの開閉時間等による撮像時刻のズレを防止できる。したがって、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、すべてのカメラ(第1カメラC1~第KカメラCK)の露光中央時刻T0を合わせることができる。
【0064】
第1画像処理装置Im1は、決定された露光中央時刻T0に基づいて、第1カメラC1に露光開始指令を生成し、第1カメラC1の露光開始のタイミングに基づいて、生成された露光開始指令を第1カメラC1に送信する(St102)。また、第1画像処理装置Im1は、決定された露光中央時刻T0に基づいて、第1照明L1に発光開始指令を生成し、第1照明L1の発光開始のタイミングに基づいて、生成された発光開始指令を第1照明L1に送信する(St103)。なお、ステップSt102とステップSt103の処理順序は、逆であってもよい。
【0065】
第1照明L1は、第1画像処理装置Im1から送信された発光開始指令に基づいて、発光を開始する(St104)。
【0066】
第1カメラC1は、第1画像処理装置Im1から送信された露光開始指令に基づいて、露光を開始する(St105)。
【0067】
第1画像処理装置Im1は、第1カメラC1に露光終了指令を生成し、第1カメラC1の露光終了のタイミングに基づいて、生成された露光終了指令を第1カメラC1に送信する(St106)。第1カメラC1は、第1画像処理装置Im1から送信された露光終了指令に基づいて、露光を終了する。
【0068】
また、第1画像処理装置Im1は、第1照明L1に発光終了指令を生成し、第1照明L1の発光終了のタイミングに基づいて、生成された発光終了指令を第1照明L1に送信する(St107)。第1照明L1は、第1画像処理装置Im1から送信された発光終了指令に基づいて、発光を終了する。
【0069】
なお、
図4に示すステップSt102およびステップSt103の処理の順序と、ステップSt106およびステップSt107の処理の順序とは一例であって、これに限定されない。また、第1照明L1が発光する発光期間は、第1カメラC1の露光期間と略同じであってもよいし、より長い時間であってもよい。
【0070】
次に、ステップSt200のサーボモータ位置取得処理について説明する。ステップSt200のサーボモータ位置取得処理は、ステップSt100の撮像処理に対応する周期、例えば、1kHzの周期で実行される。
【0071】
第1サーボコントローラS1は、第1エンコーダEn1に第1サーボモータSm1の位置情報の取得を要求するA/D変換開始指令を生成して、第1エンコーダEn1に出力する(St201)。
【0072】
第1エンコーダEn1は、第1画像処理装置Im1の露光中央時刻T0のタイミングで第1サーボモータSm1の位置情報を示す電子信号(アナログ信号)を取得し、デジタル信号に変換する(St202)。第1エンコーダEn1は、第1サーボモータSm1の位置情報を第1サーボコントローラS1に出力する(St203)。
【0073】
これにより、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれも同様に、時刻合わせされた同期時刻を基準として露光中央時刻T0と同時刻のサーボモータ(第1サーボモータSm1~第NサーボモータSmN)のそれぞれの位置情報を取得できる。つまり、モータ制御システム100は、すべてのカメラの撮像時刻と、すべてのサーボモータの位置情報の取得時間とを同じ時刻(=露光中央時刻T0)に合わせることができる。
【0074】
第1サーボコントローラS1は、第1エンコーダEn1により取得された第1サーボモータSm1の位置情報を第1画像処理装置Im1に送信する(St12)。
【0075】
次に、ステップSt300の画像処理について説明する。ステップSt300の画像処理は、例えば、1kHzの周期で実行される。
【0076】
第1画像処理装置Im1は、第1カメラC1のフレームレートと、第1サーボコントローラS1から送信された第1サーボモータSm1の位置情報と、1つ前のフレームで検出された対象物の位置とに基づいて、カルマンフィルタにより、1つ前のフレームの次に撮像されたフレームに写る対象物の位置を推定する。第1画像処理装置Im1は、推定された対象物の位置に対応する少なくとも1つの画素を含む画素データの読み出しおよび送信を第1カメラC1に要求する。
【0077】
第1カメラC1は、露光中にレンズから入射した光を電気信号(アナログ信号)に置き換え、デジタル信号に変換するA/D変換処理を実行する。第1カメラC1は、画素データを読み出して、第1画像処理装置Im1に送信する(St301)。
【0078】
第1画像処理装置Im1は、第1カメラC1から送信された画素データをメモリ12に記録する前に画像処理を実行する(St302)。第1画像処理装置Im1は、第1カメラC1から送信された画素データに対して山登り法による対象物の検出処理を順次実行する。第1画像処理装置Im1は、画素データから検出された検出部が対象物である確からしさを示す評価値を算出する。第1画像処理装置Im1は、山登り法により、算出された評価値がより高い画素の近傍に位置する少なくとも1つの画素を含む画素データの読み出しを第1カメラC1に要求する。
【0079】
第1カメラC1は、第1画像処理装置Im1から送信された要求に基づく画素データを読み出し、第1画像処理装置Im1に送信する(St301)。
【0080】
第1画像処理装置Im1は、第1カメラC1から送信された画素データをメモリ12に記録する前に画像処理を実行する(St302)。第1画像処理装置Im1は、ステップSt301の第1カメラC1による画素データの読み出し処理と、ステップSt302の第1画像処理装置Im1による対象物の検出処理とを、山登り法による評価値の改善がなくなるまで、つまり、対象物が検出されたと判定されるまでの間、繰り返し実行する。
【0081】
第1画像処理装置Im1は、画像処理結果である対象物が検出された位置情報を第1サーボコントローラS1に送信する(St15)。また、第1画像処理装置Im1は、第1カメラC1から取得されたフレームと、第1カメラC1によるフレームの撮像順番を示すアドレス番号と、検出された対象物の位置情報と、サーボモータの位置情報とを対応付けて、メモリ12に記録する。
【0082】
これにより、第1画像処理装置Im1は、1つ前のフレームに写る対象物の位置情報と、1つ前に撮像されたフレームの撮像時刻(=露光中央時刻T0)における第1サーボモータSm1の位置情報と、次に撮像されたフレームの撮像時刻(=露光中央時刻T0)における第1サーボモータSm1の位置情報とに基づいて、2枚のフレーム間におけるサーボモータの移動量を算出できる。第1画像処理装置Im1は、2枚のフレーム間におけるサーボモータの移動量に基づいて、次のフレームに写る対象物の位置をより高精度に推定できる。
【0083】
したがって、第1画像処理装置Im1は、次のフレームに写る対象物の位置を従来よりもさらに精度よく推定できるため、画像処理すべき画素を効果的に選択でき、山登り法により画像処理される画素数を減少させ、対象物の検出時間をより短縮することができる。
【0084】
また、第1画像処理装置Im1は、高フレームレートで撮像する第1カメラC1により連続して撮像された2枚のフレームと、2枚のフレーム間におけるサーボモータの移動量とに基づいて、これら2枚のフレームをそれぞれステレオカメラで撮像されたフレームとして扱うことができる。したがって、第1画像処理装置Im1は、第1カメラC1のイメージセンサに対して略垂直方向における対象物の位置(つまり、イメージセンサとの間の距離であって、奥行き)を計測することができる。これにより、第1画像処理装置Im1は、第1カメラC1と対象物との間の距離を計測できる。
【0085】
さらに、対象物が移動している場合、第1画像処理装置Im1は、高フレームレートで撮像する第1カメラC1により連続して撮像された2枚のフレームと、2枚のフレーム間におけるサーボモータの移動量とに基づいて、対象物の移動速度,移動距離を計測できる。また、対象物が移動していない場合、第1画像処理装置Im1は、連続して撮像された2枚のフレームと、2枚のフレーム間におけるサーボモータの移動量とに基づいて、対象物に働く外乱として、対象物の移動量,移動速度等を計測(特定)できる。なお、外乱の特定については、後述する
図6および
図7で詳細に説明する。
【0086】
また、対象物が等速直線運動をしていない場合、第1画像処理装置Im1は、連続して撮像された2枚のフレームと、2枚のフレーム間におけるサーボモータの移動量とに基づいて、対象物の移動量,加速度等の変化を計測できる。
【0087】
次に、ステップSt400のモータ駆動処理およびサーボモータ位置取得処理について説明する。ステップSt400のモータ駆動処理およびサーボモータ位置取得処理は、例えば、数10kHzの周期で実行される。
【0088】
第1サーボコントローラS1は、電流制御指令を生成して、第1モータドライバMd1に出力する(St401)。第1モータドライバMd1は、第1サーボコントローラS1から出力された電流制御指令に基づいて、第1サーボモータSm1を駆動させる(St402)。
【0089】
第1サーボコントローラS1は、A/D変換開始指令を生成して、第1エンコーダEn1に出力する(St403)。第1エンコーダEn1は、第1サーボコントローラS1から出力されたA/D変換開始指令に基づいて、第1サーボモータSm1の位置情報を示す電子信号(アナログ信号)を取得し、デジタル信号に変換する(St404)。第1エンコーダEn1は、第1サーボモータSm1の位置情報を第1サーボコントローラS1に出力する(St405)。
【0090】
ここで、
図3に示すステップSt400の処理は、他の処理よりも早い周期で繰り返し実行される。モータ制御システム100は、ステップSt100~ステップSt300の処理で得られた対象物の位置情報に基づいて、ステップSt400の処理で、第1サーボモータSm1の現在位置を補正したり、第1サーボモータSm1の位置を対象物の位置に合わせて移動(追従)させたりする。
【0091】
次に、
図5を参照して、画像処理装置およびサーボコントローラの動作手順をタイムチャートで説明する。
図5は、実施の形態1における画像処理装置およびサーボコントローラの動作手順を示すタイムチャートである。なお、
図5に示すエンコーダの読み出し周期および回数は一例であって、これに限定されない。
【0092】
なお、
図5に示す例では、説明を簡単にするために、モータ制御システム100の最小構成である第1画像処理装置Im1と第1サーボコントローラS1との間で実行される動作手順例について説明する。
【0093】
第1カメラC1は、露光中央時刻t=0(ゼロ)となるように露光して対象物を撮像し、第1フレームImg1のうち読み出し領域AR1に含まれる画素データの読み出しを時刻t=t1から順次実行する。第1画像処理装置Im1は、第1カメラC1から読み出された画素データを取得し、順次画像処理を実行する。第1画像処理装置Im1は、検出された対象物の位置情報を第1サーボコントローラS1に送信する。
【0094】
第1サーボコントローラS1は、第1カメラC1による対象物の撮像処理と、第1画像処理装置Im1による対象物の検出処理とが実行される間、第1モータドライバMd1を駆動させるとともに、第1エンコーダEn1による第1サーボモータSm1の位置情報の取得(読み出し)とを数10kHzの周期で繰り返し実行する。なお、画像Ps1は、時刻t=0(ゼロ)における第1モータドライバMd1の状態を示す。
【0095】
第1サーボコントローラS1は、露光中央時刻t=1のタイミングにおける第1サーボモータSm1の位置情報を取得して、第1画像処理装置Im1に送信する。
【0096】
第1カメラC1は、露光中央時刻t=1となるように露光して対象物を撮像する。第1画像処理装置Im1は、第1フレームImg1で検出された対象物の位置情報と、第1サーボコントローラS1から送信された第1サーボモータSm1の位置情報に基づいて、第2フレームImg2に写る対象物の位置を推定し、第2フレームImg2から画素データを読み出す読み出し領域AR2を決定する。第1画像処理装置Im1は、読み出し領域AR2の読み出しを第1カメラC1に要求する。
【0097】
第1カメラC1は、第2フレームImg2のうち読み出し領域AR2に含まれる画素データの読み出しを時刻t=t2から順次実行する。第1画像処理装置Im1は、第1カメラC1から読み出された画素データを取得し、順次画像処理を実行する。第1画像処理装置Im1は、検出された対象物の位置情報を第1サーボコントローラS1に送信する。
【0098】
第1サーボコントローラS1は、第1カメラC1による対象物の撮像処理と、第1画像処理装置Im1による対象物の検出処理とが実行される間、第1フレームImg1から検出された対象物の位置情報に基づいて、第1モータドライバMd1を駆動させるとともに、第1エンコーダEn1による第1サーボモータSm1の位置情報の取得(読み出し)とを数10kHzの周期で繰り返し実行する。なお、画像Ps2は、時刻t=1における第1モータドライバMd1の状態を示す。
【0099】
第1サーボコントローラS1は、露光中央時刻t=2のタイミングにおける第1サーボモータSm1の位置情報を取得して、第1画像処理装置Im1に送信する。
【0100】
第1カメラC1は、露光中央時刻t=2となるように露光して対象物を撮像する。第1画像処理装置Im1は、第1フレームImg1,第2フレームImg2で検出された対象物の位置情報、第1サーボコントローラS1から送信された各フレームに対応する第1サーボモータSm1の位置情報等に基づいて、露光中央時刻t=1~2の間の対象物の移動量,移動速度、第1サーボモータSm1の移動量,移動速度等をそれぞれ計測する。
【0101】
第1画像処理装置Im1は、算出された露光中央時刻t=1~2の間の対象物の移動量,移動速度、第1サーボモータSm1の移動量,移動速度等を用いて、第3フレームImg3に写る対象物の位置を推定する。第1画像処理装置Im1は、第3フレームImg3から画素データを読み出す読み出し領域AR3を決定する。第1画像処理装置Im1は、読み出し領域AR3の読み出しを第1カメラC1に要求する。
【0102】
第1カメラC1は、第3フレームImg3のうち読み出し領域AR3に含まれる画素データの読み出しを時刻t=t3から順次実行する。第1画像処理装置Im1は、第1カメラC1から読み出された画素データを取得し、順次画像処理を実行する。第1画像処理装置Im1は、検出された対象物の位置情報を第1サーボコントローラS1に送信する。
【0103】
第1サーボコントローラS1は、第1カメラC1による対象物の撮像処理と、第1画像処理装置Im1による対象物の検出処理とが実行される間、第2フレームImg2に対応する対象物の位置情報に基づいて、第1モータドライバMd1を駆動させるとともに、第1エンコーダEn1による第1サーボモータSm1の位置情報の取得(読み出し)とを数10kHzの周期で繰り返し実行する。なお、画像Ps3は、時刻t=2における第1モータドライバMd1の状態を示す。画像Ps4は、時刻t=3における第1モータドライバMd1の状態を示す。
【0104】
第1サーボコントローラS1は、露光中央時刻t=3のタイミングにおける第1サーボモータSm1の位置情報を取得して、第1画像処理装置Im1に送信する。
【0105】
第1カメラC1は、露光中央時刻t=4となるように露光して対象物を撮像する。第1画像処理装置Im1は、第2フレームImg2,第3フレームImg3で検出された対象物の位置情報と、第1サーボコントローラS1から送信された各フレームに対応する第1サーボモータSm1の位置情報に基づいて、露光中央時刻t=2~3の間の対象物の移動量,移動速度、第1サーボモータSm1の移動量,移動速度等をそれぞれ算出する。
【0106】
第1画像処理装置Im1は、算出された露光中央時刻t=2~3の間の対象物の移動量,移動速度、第1サーボモータSm1の移動量,移動速度等を用いて、第4フレームImg4に写る対象物の位置を推定する。第1画像処理装置Im1は、第4フレームImg4から画素データを読み出す読み出し領域AR4を決定する。第1画像処理装置Im1は、読み出し領域AR4の読み出しを第1カメラC1に要求する。
【0107】
以上により、実施の形態1に係るモータ制御システム100は、第1サーボモータSm1~第NサーボモータSmNのそれぞれにより対象物にリアルタイムに追従できる。
【0108】
次に、
図6および
図7のそれぞれを参照して、外乱の特定処理について説明する。
図6は、従来の画像処理装置とサーボモータとの動作処理例を説明する比較図である。
図7は、本開示の画像処理装置とサーボモータとの動作処理例を説明する比較図である。
【0109】
なお、
図6および
図7に示す例において1台のカメラは、1台のサーボモータにより駆動される台車Trに設けられる。サーボモータは、カメラにより撮像され、計測された対象物Tgの位置に追従するように台車Trを移動させて、グローブGrで接近する対象物Tgをキャッチする例について説明する。また、
図6および
図7に示す例では、画像処理装置、照明、サーボコントローラ、エンコーダ、サーボモータ等の図示を省略している。
【0110】
また、
図6および
図7に示す例において、外乱は、紙面右側に向かって吹く風であって、露光中央時刻t=11から露光中央時刻t=12までの間に、対象物Tgを紙面右側に20cm移動させる。また、ここでは説明を簡単にするために、外乱が対象物Tgにのみ働き、台車Trには働かない例について説明する。
【0111】
まず、
図6を参照して、対象物を撮像する撮像時刻(露光中央時刻t=11,12,13)と、サーボモータの位置情報の取得時刻とを同期させない場合の画像処理装置とサーボモータとの動作処理について説明する。
【0112】
カメラは、露光中央時刻t=11となるように対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg11から対象物Tgを検出する。
図6に示すフレームImg11において、画像処理装置は、カメラの画角中心、つまり、カメラにより撮像されたフレームImg11の中心位置である対象物Tgの推定位置Tg11に対して紙面右側に1mずれた位置で対象物Tgを検出する。画像処理装置は、対象物Tgの位置情報をサーボコントローラに送信する。
【0113】
サーボコントローラは、画像処理装置から送信された対象物Tgの位置情報に基づいて、台車Trの位置を紙面右側に1m移動させるための電流制御指令を生成する。サーボコントローラは、生成された電流制御指令をモータドライバに出力する。モータドライバは、電流制御指令に基づいて、台車Trが紙面右側に1m進むようにサーボモータを駆動させる。
【0114】
対象物Tgは、露光中央時刻t=11から露光中央時刻t=12までの間に、外乱により紙面右側に20cm移動する。
【0115】
カメラは、露光中央時刻t=12となるように対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg12から対象物Tgを検出する。
図6に示すフレームImg12において、画像処理装置は、対象物Tgの推定位置Tg12に対して紙面右側に70cmずれた位置で対象物Tgを検出する。
【0116】
しかし、画像処理装置は、カメラが露光中央時刻t=12の時に台車Trがどの位置まで移動したのかは不明である。したがって、従来の画像処理装置は、台車Trのサーボコントローラにどれだけ移動させるべきかという正確な情報を伝えることができない。
【0117】
露光中央時刻t=12におけるサーボモータは、露光中央時刻t=11で検出された対象物Tgの位置に基づく台車Trの移動、つまり、紙面右側1mの位置への移動を継続している。
【0118】
カメラは、露光中央時刻t=13となるように対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg13から対象物Tgを検出する。
図6に示すフレームImg13において、画像処理装置は、対象物Tgの推定位置Tg13に対して紙面右側に20cmずれた位置で対象物Tgを検出する。
【0119】
露光中央時刻t=13におけるサーボモータは、露光中央時刻t=11で検出された対象物Tgの位置に基づく台車Trの移動、つまり、紙面右側1mの位置への移動が完了すると、停止する。サーボコントローラは、サーボモータによる台車Trの紙面右側1mの位置への移動が完了した旨の通知を生成して、画像処理装置に送信する。
【0120】
以上のように、撮像時刻(露光中央時刻t=11,12,13)とサーボモータの位置情報の取得時刻とを同期させない場合、サーボコントローラは、一度画像処理装置から対象物Tgの位置情報を取得すると、この対象物Tgの位置情報に基づいて、台車Trの移動が完了するまでサーボモータの駆動制御を実行し続ける。しかし、対象物Tgに外乱が働く場合、台車Trが移動している露光中央時刻t=11から露光中央時刻t=13までの間、対象物Tgは、外乱によって紙面右側に20cm移動する。
【0121】
したがって、サーボコントローラは、露光中央時刻t=13の時点において、対象物Tgが外乱により紙面右側に20cm移動しているため、台車TrおよびグローブGrの位置を対象物Tgに追従させることが困難だった。また、画像処理装置は、露光中央時刻t=13でサーボモータによる紙面右側1mの移動を完了するまでの間、サーボコントローラからサーボモータの位置情報がフィードバックされない。よって、画像処理装置は、次のフレームに写る対象物Tgの位置の推定において推定精度が低下する。画像処理装置は、対象物Tgの位置の推定精度が低下することで、次のフレームにおいて対象物Tgを検出するための画像処理量が増え、画像処理に要する時間がより長くなる。
【0122】
次に、
図7を参照して、対象物を撮像する撮像時刻(露光中央時刻t=11,12,13)と、サーボモータの位置情報の取得時刻とを同期させる場合の画像処理装置とサーボモータとの動作処理について説明する。
【0123】
カメラは、露光中央時刻t=11で対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg21から対象物Tgを検出する。
図7に示すフレームImg21において、画像処理装置は、カメラの画角中心、つまり、カメラにより撮像されたフレームImg21の中心位置である対象物Tgの推定位置Tg21に対して紙面右側に1mずれた位置で対象物Tgを検出する。画像処理装置は、対象物Tgの位置情報をサーボコントローラに送信する。
【0124】
サーボコントローラは、画像処理装置から送信された対象物Tgの位置情報に基づいて、台車Trの位置を紙面右側に1m移動させるための電流制御指令を生成する。サーボコントローラは、生成された電流制御指令をモータドライバに出力する。モータドライバは、電流制御指令に基づいて、台車Trが紙面右側に1m進むようにサーボモータを駆動させる。
【0125】
対象物Tgは、露光中央時刻t=11から露光中央時刻t=12までの間に、外乱により紙面右側に20cm移動する。
【0126】
カメラは、露光中央時刻t=12に対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg22から対象物Tgを検出する。
図7に示すフレームImg22において、画像処理装置は、対象物Tgの推定位置Tg22に対して紙面右側に70cmずれた位置で対象物Tgを検出する。画像処理装置は、対象物Tgの位置情報をサーボコントローラに送信する。
【0127】
サーボコントローラは、露光中央時刻t=12でエンコーダ値をエンコーダから読み出す。サーボコントローラは、露光中央時刻t=12で台車Trが紙面右側に50cm進んだ旨を画像処理装置に通知する。
【0128】
また、サーボコントローラは、画像処理装置から送信された対象物Tgの位置情報に基づいて、次の露光中央時刻t=13における台車Trの位置(つまり、目標位置)を紙面右側にさらに20cm追加する補正を実行する。サーボコントローラは、台車Trの位置を紙面右側に70cm移動させるための電流制御指令を生成する。サーボコントローラは、生成された電流制御指令をモータドライバに出力する。モータドライバは、電流制御指令に基づいて、台車Trが紙面右側に70cm進むようにサーボモータを駆動させる。
【0129】
カメラは、時刻t=13に対象物Tgを撮像する。画像処理装置は、カメラにより撮像されたフレームImg23から対象物Tgを検出する。
図7に示すフレームImg23において、画像処理装置は、対象物Tgの推定位置Tg23で対象物Tgを検出する。
【0130】
時刻t=13におけるサーボモータは、時刻t=11で検出された対象物Tgの位置に基づく台車Trの移動、つまり、紙面右側1.2mの位置への移動が完了すると、停止する。サーボコントローラは、サーボモータによる台車Trの紙面右側1.2mの位置への移動が完了した旨の通知を生成して、画像処理装置に送信する。
【0131】
以上のように、撮像時刻(露光中央時刻t=11,12,13)とサーボモータの位置情報の取得時刻とを同期させる場合、サーボコントローラは、各露光中央時刻で台車Trの位置を画像処理装置に送信(通知)するとともに、画像処理装置から対象物Tgの位置情報を取得する。これにより、サーボコントローラは、最新の対象物Tgの位置に基づいて、台車Trの目標位置を補正できる。サーボコントローラは、補正後の台車Trの目標位置に基づいて、サーボモータを駆動制御できる。
【0132】
したがって、サーボコントローラは、対象物Tgに外乱が働いた場合であっても、外乱による対象物Tgの位置ずれ(紙面右側に20cmの移動)に合わせてサーボモータを駆動させることができ、台車TrおよびグローブGrを対象物Tgの動きに追従させ、グローブGrで対象物Tgをキャッチすることができる。
【0133】
また、画像処理装置は、サーボコントローラによるエンコーダ値のフィードバックにより、エンコーダ値により連続する2つの露光中央時刻の間に移動した台車Trの移動量を算出可能であるため、外乱による対象物Tgへの影響(例えば、外乱による対象物Tgの移動量,移動速度,加速度等)を特定できる。画像処理装置は、外乱による対象物Tgへの影響を特定することで、次のフレームに写る対象物Tgの推定位置の推定精度を向上させることができる。画像処理装置は、推定位置の推定精度が向上することで、次のフレームのうち対象物Tgを検出するための画像処理範囲をより減少させることができ、画像処理に要する時間をより短縮できる。
【0134】
(実施の形態1の変形例)
実施の形態1に係るモータ制御システム100は、第1サーボコントローラS1~第NサーボコントローラSNまたは第1画像処理装置Im1~第K画像処理装置ImKのいずれか1台の装置がマスターとして設定されて、第1サーボコントローラS1~第NサーボコントローラSNおよび第1画像処理装置Im1~第K画像処理装置ImKの時刻合わせを実行する例について示した。実施の形態1の変形例に係るモータ制御システム200は、第1サーボコントローラS1~第NサーボコントローラSNおよび第1画像処理装置Im1~第K画像処理装置ImKのそれぞれと通信可能に接続された外部マスターM1がマスターとして設定されて、第1サーボコントローラS1~第NサーボコントローラSNおよび第1画像処理装置Im1~第K画像処理装置ImKの時刻合わせを実行する例について説明する。
【0135】
なお、実施の形態1の変形例に係るモータ制御システム200は、実施の形態1に係るモータ制御システム100と略同様の構成を有する。そこで、以下の実施の形態1の変形例に係るモータ制御システム200の説明では、実施の形態1に係るモータ制御システム100と同様の構成には、同一の符号を付与して、説明を省略する。
【0136】
図8を参照して、実施の形態1の変形例に係るモータ制御システム200の全体構成例について説明する。
図8は、実施の形態1の変形例に係るモータ制御システム200の内部構成例を示すブロック図である。
【0137】
モータ制御システム200は、外部マスターM1と、N台のサーボコントローラ(具体的に、第1サーボコントローラS1~第NサーボコントローラSN)と、K台の画像処理装置(具体的に、第1画像処理装置Im1~第K画像処理装置ImK)とを含んで構成される。
【0138】
モータ制御システム200は、外部マスターM1により時刻合わせを実行する。モータ制御システム200は、外部マスターM1による時刻合わせによって、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれと、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとを同期,連携させて、第1画像処理装置Im1~第K画像処理装置ImKのそれぞれの画像処理結果(つまり、対象物の位置)に基づいて、第1サーボコントローラS1~第NサーボコントローラSNのそれぞれによる対象物の追従を実行させる。
【0139】
第1サーボコントローラS1~第NサーボコントローラSNのそれぞれは、外部マスターM1と、自サーボコントローラ以外の他のサーボコントローラおよび第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとの間でデータ送受信可能に接続される。
【0140】
第1画像処理装置Im1~第K画像処理装置ImKのそれぞれは、外部マスターM1と、自画像処理装置以外の他の画像処理装置および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれとの間でデータ送受信可能に接続される。
【0141】
外部装置の一例としての外部マスターM1は、第1サーボコントローラS1~第NサーボコントローラSNおよび第1画像処理装置Im1~第K画像処理装置ImKのそれぞれとの間でデータ送受信可能に接続され、同時刻に、第1サーボコントローラS1~第NサーボコントローラSNおよび第1画像処理装置Im1~第K画像処理装置ImKのそれぞれに同期時刻情報を送信して、時刻合わせを実行する。
【0142】
次に、
図9を参照して、実施の形態1の変形例に係るモータ制御システム200の動作手順例について説明する。
図9は、実施の形態1の変形例に係るモータ制御システム200の動作手順例を示すシーケンス図である。なお、
図9に示すモータ制御システム200の動作手順は、
図3に示すモータ制御システム100の動作手順と略同様であるため、異なる処理(ステップSt21)についてのみ説明する。
【0143】
モータ制御システム200は、ステップSt21の処理と、第1ループ処理Lp11とを実行する。なお、第1ループ処理Lp11のループ回数は、ステップSt21の時刻合わせ処理を実行する間隔によって任意の回数が設定されてよい。
【0144】
外部マスターM1は、同期される同期時刻情報を他の画像処理装置(第1画像処理装置Im1~第K画像処理装置ImK)および第1サーボコントローラS1~第NサーボコントローラSNのそれぞれに送信し、各装置の時刻合わせを所定の間隔で繰り返し実行する(St21)。ここで、モータ制御システム200は、ステップSt21における同期時刻情報が各装置で同時受信できない場合、時刻合わせ(同期)処理が失敗したと判定して、第1ループ処理Lp11に移行し、次のステップSt21の処理まで時刻合わせ(同期)処理を延期してよい。
【0145】
以上により、実施の形態1の変形例に係るモータ制御システム200は、第1サーボモータSm1~第NサーボモータSmNのそれぞれにより対象物にリアルタイムに追従できる。
【0146】
以上により、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200(同期制御システムの一例)は、対象物(被写体の一例)を撮像する少なくともカメラ(第1カメラC1~第KカメラCK)から対象物が撮像されたフレームを取得可能な少なくとも1台の画像処理装置(第1画像処理装置Im1~第K画像処理装置ImK)と、画像処理装置との間で通信可能であって、カメラの位置を移動させるサーボモータ(第1サーボモータSm1~第NサーボモータSmN)を制御する少なくとも1台のサーボコントローラと、を備え、同期時刻による時刻合わせを実行し、同期時刻に基づいて、カメラが露光する露光期間の露光中央時刻(中央時刻の一例)を決定して、決定された露光中央時刻に基づいて対象物を撮像する第1処理と、同期時刻に基づいて、中央時刻におけるサーボモータの位置を取得する第2処理とを実行し、中央時刻におけるサーボモータの位置と、対象物が撮像されたフレームとに基づいて、フレームから対象物を検出し、検出された対象物の位置に基づいて、サーボモータを駆動する。
【0147】
これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、ブラーが発生しているフレームであっても、フレームの中央位置で撮像された対象物の撮像時刻と、対象物の撮像時刻におけるサーボモータの位置とを取得できるため、対象物の位置をより高精度に計測できる。また、モータ制御システム100,200は、計測された対象物の位置に基づいて、サーボモータを対象物に追従可能に制御できる。
【0148】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、中央時刻における対象物の位置と、サーボモータの位置との差分に基づいて、サーボモータの位置の補正量を算出する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、対象物の撮像時刻におけるサーボモータの位置に対するサーボモータの位置の補正量に基づいて、サーボモータを対象物に追従可能に制御できる。
【0149】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、中央時刻における対象物の位置と、サーボモータの位置との差分に基づいて、対象物の移動速度を計測する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、露光中央時刻で撮像およびサーボモータの位置を取得するため、対象物の移動速度,移動量,加速度等の情報を取得できる。よって、モータ制御システム100,200は、移動する対象物の位置にサーボモータを追従可能に制御できる。
【0150】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、中央時刻における対象物の位置と、サーボモータの位置との差分に基づいて、対象物に働く外乱を計測する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、露光中央時刻で撮像およびサーボモータの位置を取得するため、対象物に働く外乱による対象物の移動速度,移動量,加速度等の情報を取得できる。よって、モータ制御システム100,200は、対象物に外乱が働く場合であっても、対象物の位置にサーボモータを追従可能に制御できる。
【0151】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、画像処理装置あるいはサーボコントローラうちいずれかが、自装置以外の画像処理装置あるいはサーボコントローラに同期時刻を送信する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、第1画像処理装置Im1~第K画像処理装置ImKと、第1サーボモータSm1~第NサーボモータSmNとの時刻合わせ(同期)を実行できる。
【0152】
また、実施の形態1に係るモータ制御システム100は、画像処理装置およびサーボコントローラと通信可能に接続された外部マスターM1(外部装置の一例)をさらに備える。外部マスターM1は、画像処理装置およびサーボコントローラのそれぞれに同期時刻を送信する。これにより、実施の形態1に係るモータ制御システム100は、第1画像処理装置Im1~第K画像処理装置ImKと、第1サーボモータSm1~第NサーボモータSmNとの時刻合わせ(同期)を実行できる。
【0153】
また、実施の形態1の変形例に係るモータ制御システム200は、カメラのフレームレートは、960fps以上である。これにより、実施の形態1の変形例に係るモータ制御システム200は、検出された対象物の位置に基づいて、1kHzの周期でサーボモータの位置を調整できるため、サーボモータを対象物の位置に追従可能に調整できる。
【0154】
また、以上により、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200(同期制御システムの一例)は、対象物(被写体の一例)を撮像する少なくともカメラ(第1カメラC1~第KカメラCK)から対象物が撮像されたフレームを取得可能な少なくとも1台の画像処理装置(第1画像処理装置Im1~第K画像処理装置ImK)と、画像処理装置との間で通信可能であって、カメラの位置を移動させるサーボモータ(第1サーボモータSm1~第NサーボモータSmN)を制御する少なくとも1台のサーボコントローラ(コントローラの一例であって、第1サーボコントローラS1~第NサーボコントローラSN)と、を備える。画像処理装置およびサーボコントローラは、同期時刻による時刻合わせを実行する。画像処理装置は、同期時刻に基づいて、カメラが露光する露光期間の中央時刻を決定し、決定された中央時刻に基づいて露光して撮像されたフレームをカメラから取得して、フレームの少なくとも一部の検出画素から対象物を検出する第1処理を実行する。サーボコントローラは、同期時刻に基づいて、中央時刻におけるサーボモータの位置を取得して、画像処理装置に送信する第2処理を実行する。画像処理装置は、中央時刻におけるサーボモータの位置と、対象物が撮像されたフレームとに基づいて、フレームから対象物の位置を検出してサーボコントローラに送信する。サーボコントローラは、送信された対象物の位置に基づいて、サーボモータを駆動する。
【0155】
これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、ブラーが発生しているフレームであっても、フレームの中央位置で撮像された対象物の撮像時刻と、対象物の撮像時刻におけるサーボモータの位置とを取得できるため、対象物の位置をより高精度に計測できる。また、モータ制御システム100,200は、計測された対象物の位置に基づいて、サーボモータを対象物に追従可能に制御できる。
【0156】
以上により、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200(システムの一例)は、対象物(被写体の一例)を撮像する少なくともカメラ(第1カメラC1~第KカメラCK)から対象物が撮像されたフレームを取得可能な少なくとも1台の画像処理装置(第1画像処理装置Im1~第K画像処理装置ImK)と、画像処理装置との間で通信可能であって、カメラの位置を移動させるサーボモータ(第1サーボモータSm1~第NサーボモータSmN)を制御する少なくとも1台のサーボコントローラ(コントローラの一例であって、第1サーボコントローラS1~第NサーボコントローラSN)と、を備え、同期時刻(基準時刻の一例)による時刻合わせを実行し、同期時刻に基づいて、露光中央時刻(所定の時刻の一例)で対象物を撮像し、同期時刻に基づいて、露光中央時刻におけるサーボモータの位置情報を取得し、撮像された対象物のフレームと、サーボモータの位置情報とに基づいて、フレームの少なくとも一部の画素から対象物を検出する。
【0157】
これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、カメラにより撮像されたフレームから検出された対象物の位置と、フレーム撮像時のサーボモータの位置とに基づいて、サーボモータを対象物に追従可能に制御できる。
【0158】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、サーボモータの位置情報に基づく少なくとも一部の画素の読み出しと、読み出された少なくとも一部の画素に基づく対象物の検出とを並列に実行する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、例えば、少なくとも一部の画素から対象物を検出している間に、次に対象物を検出が実行される画素の読み出しを実行できるため、フレーム全体の画素の読み出しを待たずに対象物の検出を実行でき、対象物の検出(画像処理)に要する時間を短縮できる。また、モータ制御システム100,200は、サーボモータの位置情報に基づいて画素の読み出しと対象物の検出とを実行するため、対象物の検出までに画像処理される合計画素数を削減でき、対象物の検出(画像処理)に要する時間の短縮と、画像処理による処理負荷の軽減とを実現できる。
【0159】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、フレームに対応するサーボモータの位置と、フレームと連続して撮像された1つ前のフレームに対応するサーボモータの位置との差分に基づいて、フレームに写る対象物の位置を推定し、推定された対象物の位置に基づいて、対象物の検出を行う一部の画素を決定する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、連続して撮像された2フレーム間におけるサーボモータの移動量に基づいて、連続して撮像された2フレームのうち最新のフレームに写る対象物の位置をより高精度に推定できる。モータ制御システム100,200は、推定された対象物の位置に基づいて、対象物の検出(画像処理)が実行される画素を選定するため、対象物の検出までに画像処理される合計画素数を削減でき、対象物の検出(画像処理)に要する時間の短縮と、画像処理による処理負荷の軽減とを実現できる。
【0160】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、画素に山登り法を用いた画像処理を実行し、画素から対象物が検出されないと判定した場合、山登り法により次に読み出される少なくとも一部の画素の決定と、次に読み出される一部の画素に基づく対象物の検出とを、対象物が検出されるまで繰り返し実行する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、画像処理された画素のうち検出物が対象物である確からしさの評価がより高い画素の近傍に位置する画素を、対象物の検出(画像処理)が実行される画素として選定するため、象物の検出までに画像処理される合計画素数を削減でき、対象物の検出(画像処理)に要する時間の短縮と、画像処理による処理負荷の軽減とを実現できる。
【0161】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、フレームに対応するサーボモータの位置と、フレームと連続して撮像された1つ前のフレームに対応するサーボモータの位置とに基づいて、カメラのイメージセンサと対象物との間の距離を計測する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、連続して撮像された2つのフレームのそれぞれのサーボモータの位置に基づいて、ステレオカメラにより撮像された2つのフレームの代わりに撮像された2つのフレームを用いて、カメラのイメージセンサに対して垂直方向における対象物の位置を計測できる。
【0162】
また、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、画像処理装置あるいはサーボコントローラうちいずれかが、自装置以外の画像処理装置あるいはサーボコントローラに同期時刻を送信する。これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、第1画像処理装置Im1~第K画像処理装置ImKと、第1サーボモータSm1~第NサーボモータSmNとの時刻合わせ(同期)を実行できる。
【0163】
また、実施の形態1に係るモータ制御システム100は、画像処理装置およびサーボコントローラと通信可能に接続された外部マスターM1(外部装置の一例)をさらに備える。外部マスターM1は、画像処理装置およびサーボコントローラのそれぞれに同期時刻を送信する。これにより、実施の形態1に係るモータ制御システム100は、第1画像処理装置Im1~第K画像処理装置ImKと、第1サーボモータSm1~第NサーボモータSmNとの時刻合わせ(同期)を実行できる。
【0164】
また、実施の形態1の変形例に係るモータ制御システム200は、カメラのフレームレートは、960fps以上である。これにより、実施の形態1の変形例に係るモータ制御システム200は、検出された対象物の位置に基づいて、1kHzの周期でサーボモータの位置を調整できるため、サーボモータを対象物の位置に追従可能に調整できる。
【0165】
また、以上により、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200(画像処理システムの一例)は、対象物(被写体の一例)を撮像する少なくともカメラ(第1カメラC1~第KカメラCK)から対象物が撮像されたフレームを取得可能な少なくとも1台の画像処理装置(第1画像処理装置Im1~第K画像処理装置ImK)と、画像処理装置との間で通信可能であって、カメラの位置を移動させるサーボモータ(第1サーボモータSm1~第NサーボモータSmN)を制御する少なくとも1台のサーボコントローラ(コントローラの一例であって、第1サーボコントローラS1~第NサーボコントローラSN)と、を備える。画像処理装置およびサーボコントローラは、同期時刻(基準時刻の一例)による時刻合わせを実行する。画像処理装置は、同期時刻に基づいて、露光中央時刻(所定の時刻の一例)で対象物を撮像する。サーボコントローラは、同期時刻に基づいて、露光中央時刻におけるサーボモータの位置情報を取得して画像処理装置に送信する。画像処理装置は、撮像された被写体のフレームと、サーボモータの位置情報とに基づいて、フレームの少なくとも一部の画素から対象物の位置を検出してサーボコントローラに送信する。サーボコントローラは、送信された対象物の位置に基づいて、サーボモータを駆動させる。
【0166】
これにより、実施の形態1および実施の形態1の変形例に係るモータ制御システム100,200は、カメラにより撮像されたフレームから検出された対象物の位置と、フレーム撮像時のサーボモータの位置とに基づいて、サーボモータを対象物に追従可能に制御できる。
【0167】
以上、添付図面を参照しながら各種の実施の形態について説明したが、本開示はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても本開示の技術的範囲に属すると了解される。また、発明の趣旨を逸脱しない範囲において、上述した各種の実施の形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【0168】
本開示は、カメラとサーボモータとを同期させ、対象物に対する追従精度を向上させる同期制御方法および同期制御システムの提示として有用である。
【符号の説明】
【0169】
10,20 通信部
11,21 プロセッサ
12,22 メモリ
100,200 モータ制御システム
C1 第1カメラ
CK 第Kカメラ
En1 第1エンコーダ
EnN 第Nエンコーダ
Im1 第1画像処理装置
ImK 第K画像処理装置
L1 第1照明
LK 第K照明
M1 外部マスター
Md1 第1モータドライバ
MdN 第Nモータドライバ
S1 第1サーボコントローラ
SN 第Nサーボコントローラ
Sm1 第1サーボモータ
SmN 第Nサーボモータ