JP4759810B2 - 画像処理装置及びロボット装置並びに画像処理方法 - Google Patents

画像処理装置及びロボット装置並びに画像処理方法 Download PDF

Info

Publication number
JP4759810B2
JP4759810B2 JP2000616587A JP2000616587A JP4759810B2 JP 4759810 B2 JP4759810 B2 JP 4759810B2 JP 2000616587 A JP2000616587 A JP 2000616587A JP 2000616587 A JP2000616587 A JP 2000616587A JP 4759810 B2 JP4759810 B2 JP 4759810B2
Authority
JP
Japan
Prior art keywords
image data
image processing
image
dma
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000616587A
Other languages
English (en)
Inventor
浩太郎 佐部
隆之 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of JP4759810B2 publication Critical patent/JP4759810B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は画像処理装置及びロボット装置並びに画像処理方法に関し、例えば4足動物のように動作するペットロボットに適用して好適なものである。
【0002】
【従来の技術】
従来、パーソナルコンピュータやワークステーションのような汎用の計算機にビデオカメラなどの画像入力装置を接続し、当該画像入力装置から入力される画像データを計算機において処理する画像処理システムが開発されている。このような画像処理システムの計算機は、例えば色検出や動き検出などの画像処理を行う複数の画像処理オブジェクトを有し、入力される画像データに対して複数の画像処理を施すようになされている。
【0003】
このため画像処理システムの計算機では、画像入力装置から入力される画像データを一旦フレームバッファに蓄積した後、当該フレームバッファから各画像処理オブジェクトを実行するCPU(Central Processing Unit)が直接アクセスし得るメモリに画像データを転送、又は各画像処理オブジェクトが直接フレームバッファにアクセスして画像データを読み出すようになされている。
【0004】
また、汎用の計算機に画像入力装置を接続してなる画像処理システム以外には、汎用の計算機に予め画像入力装置を組み込んだ組み込み型の画像処理装置が開発されている。このような組み込み型の画像処理装置は、特定の画像処理を実行するためのDSP(Digital Signal Processor)を有し、当該DSPのメモリに画像データを直接書き込むことにより単一の画像処理を高速に行うようになされている。
【0005】
【発明が解決しようとする課題】
ところで汎用の計算機に画像入力装置を接続してなる画像処理システムでは、CPUが実行する画像処理オブジェクトの数に比例して、画像データの転送にかかる時間が増大してしまい、画像処理に時間がかかる問題があった。因みに、画像データをフレームバッファに一旦蓄積した後にメモリに転送する方法としては、例えば特開平8−297585号公報に開示されている方法があり、この方法では、画像データを一旦フレームバッファに蓄積する分、転送速度が遅くなると共に、CPUがデータ転送を行っているため、データ転送が終わるまでCPUが他の処理を実行することができない問題があった。また、各画像処理オブジェクトが直接フレームバッファにアクセスして画像データを読み出す方法では、データのアクセスが遅い上に、CPUがハードウェアであるフレームバッファに直接アクセスするため移植性が低く、データ保護の安全性に欠ける問題があった。
【0006】
一方、組み込み型の画像処理装置では、特定の画像処理しか行えないDSPを用いていることから、複数の画像処理を同時に実行させることや、ハードウェアに依存しないプログラムを記述することが困難であった。
【0007】
本発明は以上の点を考慮してなされたもので、複数の独立した画像処理をそれぞれ並行して高速に実行する画像処理装置及びロボット装置並びに画像処理方法を提案しようとするものである。
【0008】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像入力手段から順次入力される画像データを記憶するための共有メモリを記憶手段に複数設け、画像データの転送先として共有メモリのアドレスを指定するアドレス情報が書き込まれたDMAリストに従い、画像入力手段から上記記憶手段の上記アドレスへ画像データをDMA転送するDMAコントローラを設け、DMAリストを生成してDMAコントローラにより当該DMAリストに従い画像データを当該DMAリストにより指定されたアドレスの共有メモリへ順次転送して記憶させ、画像データの読み出しが要求されると、通知手段により、当該読み出し対象の画像データが格納されている共有メモリのアドレス情報通知し、通知されたアドレス情報に基づいて、複数の画像処理手段により共有メモリから読み出し対象の画像データをそれぞれ読み出し、各画像データに対し画像処理を並行して実行するようにした。
【0009】
これにより、画像入力手段と所望アドレスの共有メモリとの間で高速なDMA転送ができ、且つ各画像処理手段は、通知されたアドレス情報に基づいて読み出し対象の画像データをそれぞれ記憶手段の共有メモリから直接読み出して所定の画像処理を施すことができる。かくして本発明は、簡易な構成で複数の独立した画像処理をそれぞれ並行して高速に実行し得る。
【0010】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【0011】
(1)ペットロボットの構成
図1において、1は全体として動物の外観形状を有するペットロボットを示し、頭に相当する頭部2と、胴体に相当する本体部3と、足に相当する足部4A〜4Dと、尻尾に相当する尻尾部5とを連結することによって構成され、本体部3に対して頭部2、足部4A〜4D及び尻尾部5を動かすことによって実際の4足動物のように動作させるようになされている。
【0012】
頭部2には、目に相当し、画像入力手段を構成するCCD(Charge Coupled Device)カメラ10と、耳に相当し、音声を集音するマイク11と、口に相当し、音声を発するスピーカ12とがそれぞれ所定位置に取り付けられている。また頭部2には、ユーザの手などが接触されたことを検出するためのタッチセンサ14と、ペットロボット1の進行方向に対して前方に位置する障害物までの距離を検出する距離センサ15とが取り付けられている。
【0013】
本体部3には、腹に相当する位置にバッテリ16が取り付けられると共に、その内部にペットロボット1全体の動作を制御するための電子回路(図示せず)等が収納されている。
【0014】
足部4A〜4Dの関節部分、足部4A〜4Dと本体部3を連結する関節部分、本体部3と頭部2を連結する関節部分、本体部3と尻尾部5を連結する関節部分などは、それぞれのアクチュエータ17〜17によって連結されており、本体部3内部に収納される電子回路の制御に基づいて駆動するようになされている。このようにペットロボット1は、各アクチュエータ17〜17を駆動させることにより、頭部2を上下左右に振らせたり、尻尾部5を振らせたり、足部4A〜4Dを動かして歩かせたり走らせたりして、実際の4足動物のような動作を行わせる。
【0015】
(2)ペットロボットの回路構成
ここでペットロボット1の回路構成を図2に示す。CPU(Central Processing Unit)20は、ペットロボット1全体の動作を制御するためのものであり、フラッシュROM(Read Only Memory)21に格納されている制御プログラムをバスB1を介して必要に応じて読み出すと共に、PC(Personal Computer)カードスロット(図示せず)に挿入されたメモリカード22に格納されている制御プログラムをPCカードインターフェイス23及びバスB1を順次介して読み出し、これら読み出した制御プログラムを記憶手段としてのDRAM(Dynamic Random Access Memory)24に転送して記憶するようになされている。CPU20は、このDRAM24に転送された制御プログラムを読み出して実行することによりペットロボット1の各回路を制御している。
【0016】
信号処理回路30は、CPU20の制御に基づいて各種信号処理を行うためのものであり、図3に示すように、CPU20(図2)に接続するためのホストインターフェイス31と、フラッシュROM21(図2)に接続するためのROMインターフェイス32と、DRAM24(図2)に接続するためのDRAMインターフェイス33とを有し、バスB1を介してCPU20、フラッシュROM21及びDRAM24に接続されている。
【0017】
信号処理回路30は、アービトレーション(バス使用権の調停作業)を行うためのバスアービタ34を有し、当該バスアービタ34は、バスB2を介してホストインターフェイス31、ROMインターフェイス32及びDRAMインターフェイス33に接続されている。
【0018】
また図2において、ペットロボット1には、各関節部分を駆動するアクチュエータ17〜17における駆動量を検出するためのポテンショメータ40〜40がそれぞれ設けられ、アクチュエータ17〜17、ポテンショメータ40〜40、タッチセンサ14、距離センサ15、マイク11及びスピーカ12がそれぞれハブ41〜41を介して信号処理回路30のシリアルバスホストコントローラ45(図3)にツリー状に接続されている。図3に示すように、シリアルバスホストコントローラ45は、バスB3を介してバスアービタ34に接続され、各ポテンショメータ40〜40によって検出された角度情報、タッチセンサ14によって検出された接触情報、距離センサ15によって検出された障害物の距離情報をバスB3、バスアービタ34、バスB2、DRAMインターフェイス33及びバスB1(図2)を順次介してDRAM24(図2)に転送して記憶するようになされている。
【0019】
FBK/CDT(Filter Bank/Color Detection)46は、CCDカメラ10(図2)に接続されるためのものであり、当該CCDカメラ10によって撮像された画像データの色認識を行いながら複数の解像度に分けて取り込み、当該取り込んだ画像データをバスアービタ34及びDRAMインターフェイス33を順次介してDRAM24(図2)に転送して記憶する。
【0020】
IPE(Inner Product Engine)47は、2次元ディジタルフィルタでなり、DRAM24(図2)からDRAMインターフェイス33及びバスアービタ34を順次介して画像データが供給されると、当該画像データから床と壁や壁と壁の境界を強調したエッジ画像を生成し、当該生成したエッジ画像をバスアービタ34及びDRAMインターフェイス33を順次介してDRAM24(図2)に戻して記憶する。
【0021】
DMA(Direct Memory Access)コントローラ48は、データの転送を司るバスマスタとして機能するためのものであり、例えばFBK/CDT46のバッファ(図示せず)から画像データを読み出してDRAM24(図2)に転送したり、DRAM24(図2)から画像データを読み出してIPE47に転送し、当該IPE47による演算結果であるエッジ画像をDRAM24(図2)に転送するようになされている。
【0022】
DSP(Digital Signal Processor)49は、マイク11(図2)からハブ41〜41X−2、シリアルバスホストコントローラ45及びバスB3を順次介して例えばユーザの指令を示す音声信号が入力されると、当該音声信号に対して所定のデータ処理を施し、その処理結果でなる音声情報をバスアービタ34及びDRAMインターフェイス33を順次介してDRAM24(図2)に転送して記憶する。
【0023】
シリアルバス50は、パーソナルコンピュータ(PC)などのリモートコンピュータ(図示せず)に接続するためのインターフェイスであり、バスB3を介してバスアービタ34に接続されている。同様にバスB3を介してバスアービタ34に接続されるペリフェラルインターフェイス51は、リモートコンピュータに接続するためのシリアルポート52及びパラレルポート53に接続されると共に、バッテリ16(図2)に接続するためのバッテリマネージャ51に接続されている。バッテリマネージャ51は、バッテリ16から通知されるバッテリ残量情報をペリフェラルインターフェイス51、バスアービタ34及びDRAMインターフェイス33を順次介してDRAM24に転送して記憶する。タイマー55は、ペットロボット1内部の時計としての役割を果たすものであり、バスB3を介してバスアービタ34に接続されている。
【0024】
CPU20は、DRAM24に展開されている各種情報に基づいて自律的に次の動作を決定し、当該決定した動作に応じた駆動信号を生成する。そしてCPU20は、この駆動信号を信号処理回路30内部のホストインターフェイス31、バスアービタ34及びシリアルバスホストコントローラ45並びにハブ41〜41を順次介してアクチュエータ17〜17に送出することにより、当該各アクチュエータ17〜17を駆動して当該ペットロボット1を自律的に動作させる。
【0025】
なおCPU20は、DRAM24に展開されている各種情報に基づいて音声情報を生成し、当該音声情報をホストインターフェイス31及びバスアービタ34を順次介してDSP49に送出し、当該DSP49において音声信号に変換した後、当該音声信号をシリアルバスホストコントローラ45、ハブ41を順次介してスピーカ12から出力する。
【0026】
(3)画像データの転送
ここではCCDカメラ10から入力される画像データをDRAM24に転送する転送方法について説明する。上述した図2及び図3に示すように、CCDカメラ10によって撮像された画像データは、信号処理回路30のFBK/CDT46に入力され、当該FBK/CDT46において所定の画像処理が施された後、DMAコントローラ48の制御に基づいてバスアービタ34及びDRAMインターフェイス33を順次介してDRAM24に転送される。
【0027】
ところでDMAコントローラ48は、バスアービタ34及びDRAMインターフェイス33を順次介してDRAM24から、CPU20によって生成されたDMAリストを読み出し、当該DMAリストに書かれている画像データの転送元や転送先に関する情報に基づいて画像データの転送を行うようになされている。従って、DMAコントローラ48は、CPU20がDMAリストを書き換えることによって、FBK/CDT46から出力される画像データをDRAM24上の任意の位置に転送することができる。このようにペットロボット1では、画像データをDRAM24に転送して展開することにより、CPU20のキャッシュ機能を有効に利用して高速なデータ処理を行うようになされている。
【0028】
以下、画像データの転送方法についてFBK/CDT46の構成を示す図4を用いながら具体的に説明する。CCDカメラ10によって撮像された画像データは、8ビットのパラレルデータとクロック信号と同期信号とからなり、FBK/CDT46の入力画像インターフェイス60に入力されて所定のフォーマットに変換された後、フィルタ演算部61に供給される。
【0029】
ところでCPU20は、DRAM24に記憶されている制御プログラムを基に各種フィルタ係数を決定し、当該決定したフィルタ係数をパラメータ記憶部62に送出して記憶するようになされている。フィルタ演算部61は、このパラメータ記憶部62に記憶されているフィルタ係数を用いて入力画像インターフェイス61にフィルタ演算を施すことにより、供給された画像データの色認識を行いながら複数の解像度の画像データを生成する。
【0030】
フィルタ演算部61の後段には1ライン分の画像データを記憶する記憶容量を有するバッファ63A及び63Bがそれぞれ設けられており、フィルタ演算部61は、生成した画像データを1ライン毎に交互にバッファ63A及び63Bに送出して蓄積していく。その際、DMAインターフェイス64は、バッファ63A及び63Bのうち一方のバッファ63に1ライン分の画像データを蓄積している間に他方のバッファ63から1ライン分の画像データを読み出し、当該読み出した1ライン分の画像データをDMAコントローラ48の指示に基づいてDRAM24に転送することにより、複数の画像データを順次DRAM24に転送する。なおバッファ63A及び63Bは、合計して2ライン分の記憶容量を持つだけなので、記憶容量が少なく、簡易な構成のFBK/CDT46を実現している。
【0031】
ところでこのような画像データの転送は、バスマスタとして機能するDMAコントローラ48によって行われる。すなわちDMAインターフェイス64は、バッファ63A及び63Bのうちいずれか一方に1ライン分の画像データが蓄積されると、DMAコントローラ48(図3)に対してDMAリクエストと呼ばれる転送要求信号を送出する。
【0032】
DMAコントローラ48(図3)は、DMAリクエストが供給されると、まずバスB1〜B3の使用権を獲得し、次いでCPU20によって通知されるDMAリストのアドレスを基にDRAM24(図2)からDMAリストを読み出す。
【0033】
DMAコントローラ48(図3)は、このDMAリストに基づいて画像データの転送先であるDRAM24(図2)上のアドレスを順次生成し、バスB1〜B3に対して書込み信号を発行する。FBK/CDT46は、このバスB1〜B3に対する書込み信号に同期して、バッファ63A及び63Bに蓄積されている画像データを読み出してバスB3に順次送出する。
【0034】
このFBK/CDT46から出力された画像データは、FBK/CDT46から出力されると同時にDRAM24に書き込まれることから、画像データの転送は非常に高速に行われる。ところで、画像データの転送先に関する設定は、DMAリストによって行われることから、DMAコントローラ48は画像データをDRAM24上の任意の位置に転送し得るようになされている。
【0035】
そしてFBK/CDT46は、バッファ63A及び63Bに蓄積されていた画像データが無くなると、DMAコントローラ48に対するDMAリクエストを取り下げて画像データの転送を打ち切る。これを受けてDMAコントローラ48は、DMAリクエストが取り下げられたタイミングまでに転送した画像データのデータ量などの情報をDMAリストに書き込んで、バスB1〜B3を解放する。そしてDMAコントローラ48は、再びDMAリクエストが供給されると、上述のDMAリストをDRAM24から読み出して前回の続きの転送を行う。
【0036】
ここで図5はDMAリスト70のデータ構造を示す。このDMAリスト70は、32ビットのデータを1ワードとして10ワードのデータから構成されている。デフォルト・ソース・スタート・アドレス(Default Source Start Address)73は、転送元の開始アドレスを示し、デフォルト・デスティネイション・スタート・アドレス(Default Desti−nation Start Address)74は、転送先の開始アドレスを示す。
【0037】
デフォルト・トランスファー・サイズ(Default Transfer Size)75は、1回で転送される画像データの転送量を示す。ループイネーブル(Loopen)76は、このDMAリストを繰り返し使うためのフラグを示し、バイト(Byte)77は、転送の単位を決定するフラグを示し、アイオーメモ(Iomem)78は、アドレスが割り当てられていない転送元からアドレスが割り当てられている転送先に画像データを転送することを表すフラグを示す。バスアウト(Busout)79は、画像データがDRAM24から転送されるのか又はDRAM24に転送されるのかを表すフラグを示し、イントイネーブル(Inten)80は、転送が終了したときに割り込みを発生するフラグを示す。
【0038】
ソース・アドレス・スキップ(Source Address Skip)81は、デフォルト・トランスファー・サイズ75に記述された転送量の画像データを転送した後に転送元において読み飛ばすアドレスの大きさを示し、設定されたアドレスの大きさに応じて画像中の一部の領域のみを抽出して転送することができる。デスティネイション・アドレス・スキップ(Destination Address Skip)82は、転送先において読み飛ばすアドレスの大きさを示し、設定されたアドレスの大きさに応じて画像中の一部の領域に別の画像をはめ込むことができる。
【0039】
ソース/デスティネイション・エンド・アドレス(Source/Des−tination End Address)83は、転送先又は転送元の終了アドレスを示す。ネクスト・DMAリスト・ポインタ(Next DMAList Pointer)84は、次に読み出すDMAリストのアドレスを記述するためのものである。
【0040】
カレント・ソース・スタート・アドレス(Current Source Start Address)85は、転送を途中で打ち切ったときに記述される転送元の開始アドレスを示す。カレント・デスティネイション・スタート・アドレス(Current Destination Start Ad−dress)86は、転送を途中で打ち切ったときに記述される転送先の開始アドレスを示す。
【0041】
カレント・ステイタス(Current Status)87は、デフォルト・トランスファー・サイズ75に記述された転送量で転送されている間に、当該転送が途中で打ち切られたときの転送量を書き込むための領域である。ビジー(Busy)88は、転送を途中で打ち切ったときに立てられるフラグを示し、ダン・カウント(Done Count)89は、転送が終了する毎にカウントアップするためのものである。
【0042】
(4)ソフトウェアの構成
ここではペットロボット1の動作を制御する制御プログラム100のソフトウェア構成を図6を用いて説明する。デバイス・ドライバ・レイヤ101は、この制御プログラムの最下位層に位置し、例えばFBK/CDTのデバイス・ドライバのような、ハードウェアとのインターフェイスを実現するためのソフトウェア群でなるデバイス・ドライバ・セット102によって構成されている。
【0043】
ロボティック・サーバ・オブジェクト103は、デバイス・ドライバ・レイヤ101の上位層に位置し、ペットロボット1のハードウェアにアクセスするためのインターフェイスを提供するソフトウェア群でなるバーチャル・ロボット104、電源の切換えなどの管理をするソフトウェア群でなるパワー・マネージャ105、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ106、ペットロボット1の機構を管理するソフトウェア群でなるデザインド・ロボット107によって構成されている。
【0044】
ミドル・ウェア・レイヤ108は、ロボティック・サーバ・オブジェクト103の上位層に位置し、画像処理や音声処理を行うソフトウェア群などによって構成されている。アプリケーション・レイヤ109は、ミドル・ウェア・レイヤ108を構成するソフトウェア群によって処理された処理結果に基づいてペットロボット1が行う動作を決定するソフトウェア群によって構成されている。
【0045】
マネージャ・オブジェクト110は、オブジェクト・マネージャ111及びサービス・マネージャ112によって構成されており、このうちオブジェクト・マネージャ111は、ロボティック・サーバ・オブジェクト103、ミドル・ウェア・レイヤ108及びアプリケーション・レイヤ109を構成するソフトウェア群の起動や終了を管理するソフトウェア群でなり、サービス・マネージャ112は、メモリカード22に記憶されているコネクションファイルに記述された各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群でなる。
【0046】
(5)画像処理方法
ここでは例えば色検出、動き検出及び障害物検出のような複数の画像処理を並行して同時に実行する場合について、図7及び図8に示すフローチャートを用いて説明する。まずステップSP1から入ったステップSP2において、CPU20は、FBK/CDTドライバ102Aを起動してFBK/CDT46を初期化する。
【0047】
次にステップSP3において、CPU20は、ロボティック・サーバ・オブジェクト103を起動してバーチャル・ロボット104を起動する。バーチャル・ロボット104は、画像データを記憶するための共有メモリ120を複数個DRAM24上に生成した後、FBK/CDTドライバ102Aに画像サイズのような画像の属性に関する情報を設定する。またCPU20は、ロボティック・サーバ・オブジェクト103の起動が終了すると、ミドル・ウェア・レイヤ108を構成している画像処理オブジェクトを順次起動していく。因みに、生成された共有メモリ120の記憶容量は、バーチャル・ロボット104の指示に応じて容易に変更が可能である。
【0048】
ステップSP4において、バーチャル・ロボット104は、DRAM24上に生成した複数の共有メモリ120のうち所望の共有メモリ120のアドレスをFBK/CDTドライバ102Aに通知すると共に、当該通知したアドレスの共有メモリ120に画像データを転送することを要求するリード要求をFBK/CDTドライバ102Aに発行する。
【0049】
ステップSP5において、FBK/CDTドライバ102Aは、バーチャル・ロボット104及びDMAコントローラ48と共にデータ転送手段を構成し、リード要求を受け取ると、指定された共有メモリ120に画像データを転送するためのDMAリスト121を生成してDRAM24に記憶する。その際、FBK/CDTドライバ102Aは、DRAM24に記憶されたDMAリスト121のアドレスをDMAコントローラ48に通知した後、FBK/CDT46に対して画像データを出力することを許可する。
【0050】
ステップSP6において、FBK/CDT46は、1フィールド分の画像データを指定された共有メモリ120に転送すると、FBK/CDTドライバ102Aに対して割り込みを発生させ、割り込みハンドラと呼ばれるソフトウェアを起動させる。次いでステップSP7において、割り込みハンドラは、バーチャル・ロボット104に対して画像データの転送が終了したことを通知する。
【0051】
ステップSP8において、バーチャル・ロボット104は、参照回数計測カウンタが0の共有メモリ領域を探索し、次にステップSP9において、転送すべき共有メモリ120のアドレスとしてFBK/CDTドライバ102Aに渡してリード要求を発行した後、ステップSP5に戻って上述の動作を繰り返す。
【0052】
一方CPU20は、この図7に示す処理と並行して図8に示すフローチャートに従った処理を実行する。すなわちCPU20は、このフローチャートをステップSP0において開始後、続くステップSP10において、ミドル・ウェア・レイヤ108を構成する画像処理オブジェクトの起動が終了したか否か判断し、その結果、画像処理オブジェクトの起動が終了したと判断した場合にはステップSP11に移行し、起動が終了していないと判断した場合には起動が終了するまで待機する。
【0053】
ステップSP11において、マネージャ・オブジェクト110のサービス・マネージャ112は、ミドル・ウェア・レイヤ108の画像処理オブジェクトの起動が終わると、各画像処理オブジェクトに対して接続相手先の画像処理オブジェクトを通知し、各画像処理オブジェクト間で通信路を開く。この場合、サービス・マネージャ112は、色検出用画像処理オブジェクト125、動き検出用画像処理オブジェクト126及びエッジ検出用画像処理オブジェクト127をバーチャル・ロボット104に接続する。またサービス・マネージャ112は、重心計算用画像処理オブジェクト128を色検出用画像処理オブジェクト125に接続すると共に、重心計算用画像処理オブジェクト129を動き検出用画像処理オブジェクト126に接続する。さらにサービス・マネージャ112は、障害物検出用画像処理オブジェクト130及び座標変換用画像処理オブジェクト131をエッジ検出用画像処理オブジェクト127に階層的に接続する。因みに、このような各画像処理オブジェクト間の接続は変更が可能であり、各画像処理オブジェクトの接続関係を変更することで様々な処理を行い得る。
【0054】
ステップSP13において、サービス・マネージャ112は、各画像処理オブジェクト間の接続が終了すると、当該各画像処理オブジェクトにスタート信号を送出する。これを受けて各画像処理オブジェクトは、コネクションファイルに記述された接続情報に基づいて下位層にある接続先の画像処理オブジェクトにデータ要求信号を送出する。
【0055】
ところで色検出用画像処理オブジェクト125、動き検出用画像処理オブジェクト126及びエッジ検出用画像処理オブジェクト127は、FBK/CDT46から順次供給される画像データを、それぞれ異なるフィールド間隔で読み出すようになされており、バーチャル・ロボット104は、供給される画像データのうち、各画像処理オブジェクト125〜127がそれぞれ読み出すべき画像データを把握している。
【0056】
従ってステップSP14において、バーチャル・ロボット104は、各画像処理オブジェクト125〜127からデータ要求信号を受け取ると、通知手段として動作し、各画像処理オブジェクト125〜127がそれぞれ読み出すべき画像データが格納されている共有メモリ120に割り当てられているID(IDentification)(すなわちアドレス情報)を各画像処理オブジェクト125〜127にそれぞれ通知する。その際、バーチャル・ロボット104は、内部の参照回数計測カウンタを用いて、各画像処理オブジェクト125〜127に通知したIDそれぞれに対して、通知した画像処理オブジェクト125〜127の数をカウントしてそのカウント数を記憶しておく。
【0057】
このときバーチャル・ロボット104は、転送制御手段として動作し、参照回数計測カウンタによるカウント数が0でないIDの共有メモリ120には、FBK/CDT46から供給される画像データを上書きせずに、カウント数が0の共有メモリ120に画像データを上書きして順次記憶していくことにより、各画像処理オブジェクト125〜127が読み出す可能性のある画像データを誤って消去することを回避している。
【0058】
ステップSP15において、各画像処理オブジェクト125〜127は、通知されたIDが割り当てられている共有メモリから画像データを読み出す。その際、各画像処理オブジェクト125〜126は、それぞれ同一の共有メモリ120に記憶されている画像データを読み出す場合もある。しかしながら共有メモリ120は、読出し専用のメモリであることから、各画像処理オブジェクト125〜127はぞれぞれ互いに干渉することなく画像データの読み出しを行い得る。
【0059】
このようにして各画像処理オブジェクト125〜127は、画像データを所望の共有メモリ120から読み出した後、ステップSP16において、読み出した画像データに対してそれぞれ所定の画像処理を施し、その処理結果を上位層のオブジェクト128〜130に送出して、ステップSP17において、上述のデータ要求信号に対する画像処理を終了する。
【0060】
続くステップSP18において、各画像処理オブジェクト125〜127は、コネクションファイルに記述された接続情報に基づいて、次の画像データを要求するためのデータ要求信号をそれぞれバーチャル・ロボット104に送出する。ステップSP19において、バーチャル・ロボット104は、データ要求信号を受け取ると、データ要求信号を送出した画像処理オブジェクト125〜127に通知したIDに対応して記憶されている参照回数計測カウンタのカウント数をデータ要求信号が供給される毎に減算する。そしてバーチャル・ロボット104は、そのカウント数が0になったときに、当該カウント数が0になったIDが割り当てられている共有メモリ120に記憶されている画像データの保護を解除し、ステップSP14に戻って動作を繰り返す。
【0061】
すなわち色検出用画像処理オブジェクト125は、読み出した画像データから色の検出を行い、その処理結果を重心計算用画像処理オブジェクト128に送出して検出した色の位置を算出させる。また動き検出用画像処理オブジェクト126は画像データから動き領域の検出を行い、その処理結果を重心計算用画像処理オブジェクト129に送出して検出した動き領域の位置や大きさを算出させる。エッジ検出用画像処理オブジェクト127は画像データからエッジの検出を行い、その処理結果を障害物検出用画像処理オブジェクト130に送出して障害物の位置を算出させた後、座標変換用画像処理オブジェクト131において障害物の位置を座標変換させる。次にステップSP18に戻り次の処理を行う。
【0062】
このように各画像処理オブジェクト125〜127は、DRAM24上に生成された共有メモリ120から画像データを読み出すようになされていることから、CCDカメラ10に依存しない汎用的な画像処理オブジェクトを実現することができ、従って複数の汎用的な画像処理オブジェクトを組み合わせることで、様々な画像処理を行うことが容易となる。
【0063】
(6)動作及び効果
以上の構成において、バーチャル・ロボット104は、DRAM24上に生成されている複数の共有メモリ120のうち書換え可能な共有メモリ120を順次指定し、当該指定した共有メモリ120のアドレスをFBK/CDTドライバ102Aに送出する。
【0064】
FBK/CDTドライバ102Aは、この指定された共有メモリ120のアドレスに基づいてDMAリストを順次生成し、これをDRAM24に記憶していく。DMAコントローラ48は、DRAM24に展開されているDMAリストに基づいて画像データをFBK/CDT46から指定された共有メモリ120に順次転送する。このようにCCDカメラ10から得られた画像データを、各画像処理オブジェクト125〜127が直接アクセスし得るDRAM24上に転送することから、画像データの転送に要する時間を削減できると共に、メモリ管理の安全性を向上し得る。
【0065】
バーチャル・ロボット104は、各共有メモリ120にそれぞれ格納されている画像データのうち、各画像処理オブジェクト125〜127がそれぞれ読み出すべき画像データを管理している。そこでバーチャル・ロボット104は、各画像処理オブジェクト125〜127からそれぞれ送られてくるデータ要求信号を受け取ると、各画像処理オブジェクト125〜127に読み出し対象の画像データが格納されている共有メモリ120のアドレスをそれぞれ通知する。
【0066】
各画像処理オブジェクト125〜127は、通知されたアドレスに基づいて共有メモリ120から画像データを読み出し、当該読み出した画像データに対してそれぞれ所定の画像処理を施す。
【0067】
その際、バーチャル・ロボット104は、読み出し対象の画像データを格納している共有メモリ120に対して、当該共有メモリ120のアドレスを通知した画像処理オブジェクト125〜127を記憶しておき、当該記憶された画像処理オブジェクト125〜127全てから次のデータ要求信号が供給されるまで、当該共有メモリ120にFBK/CDT46から画像データを転送することを禁止する。
【0068】
これにより複数の独立した画像処理オブジェクト125〜127を互いに干渉することなく並行して実行しながら、読み出し対象の画像データを確実に保護し得る。
【0069】
以上の構成によれば、各画像処理オブジェクト125〜127からそれぞれ読み出し対象の画像データが要求されると、当該読み出し対象の画像データが格納されている共有メモリ120のIDを各画像処理オブジェクト125〜127にそれぞれ通知することにより、各画像処理オブジェクト125〜127は、通知されたIDに基づいてDRAM24上に格納されている画像データをそれぞれ直接読み出すことができ、かくして簡易な構成で複数の独立した画像処理をそれぞれ並行して高速に実行し得る。
【0070】
(7)他の実施の形態
なお上述の実施の形態においては、本発明をペットロボット1に適用した場合について述べたが、本発明はこれに限らず、例えばゲームや展示等のエンタテインメント分野で用いられるロボット又は搬送用ロボット、工事用ロボット等の産業ロボットのように、他の種々のロボット装置に本発明を広く適用し得る。
【0071】
また上述の実施の形態においては、本発明をペットロボット1に適用した場合について述べたが、本発明はこれに限らず、例えば複数の画像処理を施すコンピュータのように、複数の画像処理を並列的に実行する他の種々の画像処理装置に本発明を広く適用し得る。
【0072】
【産業上の利用可能性】
本発明は、ペットロボットに適用することができる。
また本発明は、複数の処理を同時並行して行う画像処理装置に適用することができる。
【0073】
【図面の簡単な説明】
【図1】 本発明によるペットロボットの一実施の形態を示す略線図である。
【図2】 ペットロボットの回路構成を示すブロック図である。
【図3】 信号処理回路の構成を示すブロック図である。
【図4】 FBK/CDTの構成を示すブロック図である。
【図5】 DMAリストのデータ構造を示す略線図である。
【図6】 ソフトウェアの構成を示す略線図である。
【図7】 ペットロボットによる画像処理方法を示すフローチャートである。
【図8】 ペットロボットによる画像処理方法を示すフローチャートである。
【図9】 画像処理オブジェクトの構成を示す略線図である。
【符号の説明】
1……ペットロボット、2……頭部、3……本体部、4……足部、5……尻尾部、10……CCDカメラ、11……マイク、12……スピーカ、15……距離センサ、16……バッテリ、17……アクチュエータ、20……CPU、21……フラッシュROM、22……メモリカード、24……DRAM、30……信号処理回路、34……バスアービタ、40……ポテンショメータ、41……ハブ、45……シリアルバスホストコントローラ、46……FBK/CDT、47……IPE、48……DMAコントローラ。

Claims (4)

  1. 画像入力手段から順次入力される画像データを記憶するための共有メモリを複数設けた記憶手段と、
    上記画像データの転送先として上記共有メモリのアドレスを指定するアドレス情報が書き込まれたDMA(Direct Memory Access)リストに従い、上記画像入力手段から上記記憶手段の上記アドレスへ上記画像データをDMA転送させるDMAコントローラと、
    上記DMAリストを生成し、上記DMAコントローラにより当該DMAリストに従い上記画像データを当該DMAリストにより指定されたアドレスの上記共有メモリへ順次転送して記憶させるデータ転送手段と、
    上記画像データの読み出しが要求されると、当該読み出し対象の画像データが格納されている上記共有メモリのアドレス情報通知する通知手段と
    知された上記アドレス情報に基づいて上記共有メモリから上記読み出し対象の画像データをそれぞれ読み出し、各画像データに対し画像処理を並行して実行する複数の画像処理手段と
    を有する画像処理装置。
  2. 上記共有メモリに転送された上記画像データが上記画像処理手段によって読み出されるまで、上記画像入力手段から順次入力される他の画像データを他の上記共有メモリに転送させる転送制御手段
    をさらに有する請求項1に記載の画像処理装置。
  3. アクチュエータにより関節部分を動作させるロボットであって、
    画像入力手段から順次入力される複数の画像データを記憶するための共有メモリを複数設けた記憶手段と、
    上記画像データの転送先として上記共有メモリのアドレスを指定するアドレス情報が書き込まれたDMAリストに従い、上記画像入力手段から上記記憶手段の上記アドレスへ上記画像データをDMA転送させるDMAコントローラと、
    上記DMAリストを生成し、上記DMAコントローラにより当該DMAリストに従い上記画像データを当該DMAリストにより指定されたアドレスの上記共有メモリへ順次転送して記憶させるデータ転送手段と、
    上記画像データの読み出しが要求されると、当該読み出し対象の画像データが格納されている上記共有メモリのアドレス情報通知する通知手段と
    通知された上記アドレス情報に基づいて上記共有メモリから上記読み出し対象の画像データをそれぞれ読み出し、各画像データに対し画像処理を並行して実行する複数の画像処理手段と、
    上記画像処理手段による処理結果を基に次の動作を決定し、当該決定した動作に応じた駆動信号を上記アクチュエータに送出する制御手段と
    を有するロボット装置。
  4. 画像入力手段から順次入力される複数の画像データの転送先として、当該画像データを記憶するため記憶手段に複数設けられた共有メモリのアドレスを指定するアドレス情報が書き込まれたDMAリストを作成する作成ステップと、
    DMAコントローラにより、上記DMAリストに従って上記画像入力手段から上記記憶手段における当該DMAリストに示されるアドレスの上記共有メモリへ上記画像データをDMA転送させて当該共有メモリに順次記憶させる記憶ステップと、
    上記画像データの読み出しが要求されると、所定の通知手段により、当該読み出し対象の画像データが格納されている上記共有メモリのアドレス情報通知する通知ステップと
    知された上記アドレス情報に基づいて、複数の画像処理手段により上記共有メモリから上記読み出し対象の画像データをそれぞれ読み出し、各画像データに対し画像処理を並行して実行する画像処理ステップと
    を有する画像処理方法。
JP2000616587A 1999-05-10 2000-05-10 画像処理装置及びロボット装置並びに画像処理方法 Expired - Fee Related JP4759810B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1999129274 1999-05-10
JP12927499 1999-05-10
PCT/JP2000/002986 WO2000068882A1 (fr) 1999-05-10 2000-05-10 Appareil et procede de traitement d'images, et robot associe

Publications (1)

Publication Number Publication Date
JP4759810B2 true JP4759810B2 (ja) 2011-08-31

Family

ID=15005545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000616587A Expired - Fee Related JP4759810B2 (ja) 1999-05-10 2000-05-10 画像処理装置及びロボット装置並びに画像処理方法

Country Status (4)

Country Link
US (1) US6912449B2 (ja)
EP (1) EP1126409A4 (ja)
JP (1) JP4759810B2 (ja)
WO (1) WO2000068882A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929445B1 (ko) * 2003-03-25 2009-12-03 로제 가부시키가이샤 로봇 시뮬레이션장치 및 로봇 시뮬레이션 프로그램을 포함하는 기록매체
JP2006015436A (ja) * 2004-06-30 2006-01-19 Honda Motor Co Ltd 監視ロボット
KR100766434B1 (ko) * 2005-07-22 2007-10-15 엘지전자 주식회사 영상 인식이 가능한 이동체와 이동체 유도 방법
JP2007058518A (ja) * 2005-08-24 2007-03-08 Renesas Technology Corp メモリカード
US8786613B2 (en) 2006-04-08 2014-07-22 Alan Millman Method and system for interactive simulation of materials and models
US8395626B2 (en) * 2006-04-08 2013-03-12 Alan Millman Method and system for interactive simulation of materials
EP2126834A1 (en) * 2007-02-02 2009-12-02 Thomson Licensing Independent parallel image processing without overhead
US9552619B2 (en) * 2012-08-08 2017-01-24 Megachips Corporation Image processing apparatus and image processing interface circuit
CN108415424B (zh) 2018-02-05 2019-09-13 腾讯科技(深圳)有限公司 智能机器人控制方法和装置、系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993019431A1 (en) * 1992-03-20 1993-09-30 Maxys Circuit Technology Ltd. Parallel vector processor architecture
JPH06229941A (ja) * 1993-01-29 1994-08-19 Ricoh Co Ltd 画像検査装置
JPH06274436A (ja) * 1993-03-22 1994-09-30 N T T Data Tsushin Kk データ転送方式
JPH0850651A (ja) * 1994-08-05 1996-02-20 Mitsubishi Electric Corp 画像処理lsi
JPH08272675A (ja) * 1995-03-29 1996-10-18 Fuji Xerox Co Ltd 画像処理装置
JPH08297585A (ja) * 1995-04-25 1996-11-12 Hitachi Ltd オペレーティングシステムによるデータ転送方法
JPH10157218A (ja) * 1996-11-26 1998-06-16 Canon Inc バッファメモリ制御装置およびその制御方法ならびに複合画像形成装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2577096B1 (fr) * 1985-02-06 1988-07-22 Hotchkiss Brandt Sogeme Dispositif et procede de traitement d'images
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
JPH09511078A (ja) * 1993-12-12 1997-11-04 エーエスピー ソルーション ユーエスエイ インコーポレイション 信号処理方法および装置
US6215898B1 (en) * 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
JP2001188555A (ja) * 1999-12-28 2001-07-10 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2001191283A (ja) * 1999-12-31 2001-07-17 Sony Corp ロボット装置及びその制御方法
JP3374175B2 (ja) * 2000-01-27 2003-02-04 名古屋大学長 位置表示用データ送信機能付きデータ送信装置、(以下[発明の名称の続き]欄に記載)
JP4233723B2 (ja) * 2000-02-28 2009-03-04 本田技研工業株式会社 障害物検出装置、障害物検出方法、及び障害物検出プログラムを記録した記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993019431A1 (en) * 1992-03-20 1993-09-30 Maxys Circuit Technology Ltd. Parallel vector processor architecture
JPH06229941A (ja) * 1993-01-29 1994-08-19 Ricoh Co Ltd 画像検査装置
JPH06274436A (ja) * 1993-03-22 1994-09-30 N T T Data Tsushin Kk データ転送方式
JPH0850651A (ja) * 1994-08-05 1996-02-20 Mitsubishi Electric Corp 画像処理lsi
JPH08272675A (ja) * 1995-03-29 1996-10-18 Fuji Xerox Co Ltd 画像処理装置
JPH08297585A (ja) * 1995-04-25 1996-11-12 Hitachi Ltd オペレーティングシステムによるデータ転送方法
JPH10157218A (ja) * 1996-11-26 1998-06-16 Canon Inc バッファメモリ制御装置およびその制御方法ならびに複合画像形成装置

Also Published As

Publication number Publication date
US20020054240A1 (en) 2002-05-09
EP1126409A1 (en) 2001-08-22
EP1126409A4 (en) 2003-09-10
WO2000068882A1 (fr) 2000-11-16
US6912449B2 (en) 2005-06-28

Similar Documents

Publication Publication Date Title
CN110942518B (zh) 上下文计算机生成现实(cgr)数字助理
Cheriton The V kernel: A software base for distributed systems
US7302312B2 (en) Hardware abstraction layer (HAL) for a robot
JP4759810B2 (ja) 画像処理装置及びロボット装置並びに画像処理方法
TW552515B (en) Input/output (I/O) address translation in a bridge proximate to a local I/O bus
US7076331B1 (en) Robot, method of robot control, and program recording medium
CN1107287C (zh) 信息处理装置和信息处理方法
CN113119104B (zh) 机械臂控制方法、机械臂控制装置、计算设备及系统
WO2020183877A1 (ja) 情報処理装置および情報処理方法
JP4235858B2 (ja) ロボット装置及びロボット装置の障害物マップ生成方法
JP4618470B2 (ja) 画像処理装置及び方法並びにロボット装置及びその制御方法
CN108513670A (zh) 处理图像的方法、芯片、处理器、系统和可移动设备
CN113181631A (zh) 基于主被动力反馈的虚拟宠物系统以及交互控制方法
EP1310870A1 (en) Information processing device, information processing method, and robot apparatus
JP2007528050A5 (ja)
JP2002326176A (ja) ロボット装置、並びに、画像記憶方法及び画像記憶装置、並びに、制御プログラム及び記録媒体
JP2638078B2 (ja) 情報処理装置
JP7513030B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び制御装置
JP3501123B2 (ja) ロボット装置及びロボット装置の行動制御方法
JP2719280B2 (ja) 計算機システムと高速i/oデータ転送方法
JP2023017439A (ja) 安全装置
KR20240044998A (ko) 이상 물체를 감지하는 로봇 청소기 및 이의 제어 방법
JPH05233525A (ja) I/o処理装置
JP2004229003A (ja) ロボット装置、撮像方向切換方法
JPH02181849A (ja) 入出力装置の模擬機能を有する情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110523

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees