【解決手段】ワークのピッキングを行うロボットの動作を制御するロボット制御装置であって、前記ロボット制御装置は、前記ロボットのエンドエフェクタを移動させながら前記エンドエフェクタが前記ワークに接触を検出した場合に前記ピッキングを実行させる。
前記ロボット制御装置は、前記エンドエフェクタの移動中において、前記エンドエフェクタに作用する所定値以上の反力を検出した場合に前記ロボットが前記ワークに接触したとして前記ピッキングを実行させることを特徴とする、請求項1に記載のロボット制御装置。
前記ロボット制御装置は、前記ワークのピッキングを行った後の前記エンドエフェクタの移動中において、前記所定値以上の反力を検出した場合には前記ピッキングを解除することで当該ワークを所定の位置に配置することを特徴とする、請求項2又は3に記載のロボット制御装置。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態に係るロボット制御装置を、図面を用いて説明する。
【0017】
図1は、本発明の一実施形態に係るロボット制御装置を備えたピッキングシステムAの概略構成の一例を示す図である。
本発明の一実施形態に係るピッキングシステムAは、ワークWをピッキングロボットでピッキングして別の位置に配置する、いわゆるピック&プレイス動作を実行するシステムである。例えば、ピッキングシステムAは、第1のケースに収容された物品(ワークW)を、1つずつピッキングして、第2のケースに移載するものである。
【0018】
第1のケースは、上面が開放された箱状の容器である。第1のケースは、物品の種類ごとに複数配置されており、例えば、一つの第1のケースには、一種類の物品が収容されている。例えば、第1のケースには、複数のワークWがバラ積みの状態で収容されている。
【0019】
第2のケースは、上面が開放された箱状の容器であり、例えば、ベルトコンベアにより搬送されている。例えば、第2のケースは、ワークWを出荷先に配送するためのケースであって、収納するワークWの種類や個数が出荷先ごとに予め設定されている。したがって、ピッキングシステムAは、第2のケースに収納するワークWや当該ワークWの個数の情報(以下、「入力情報」という。)が入力されると、当該ワークWのピック&プレイス動作を実行可能なロボットを選択する。そして、ピッキングシステムAは、選択したロボットで第1のケースに収容されているワークWをピッキングして、当該ワークWをベルトコンベアにより搬送されている第2のケースに移載する。
【0020】
以下に、本発明の一実施形態に係るピッキングシステムAの概略構成の一例について説明する。
【0021】
ピッキングシステムAは、ロボット1、駆動装置2、ピッキングセンサ3及びロボット制御装置4を備える。
【0022】
ロボット1は、人間の安全を十分に確保できるため、人間と協働して作業を実施できる、いわゆる人協働ロボットである。本実施形態では、
図1に示すように、ロボット1として、6つの関節部を有するロボットアーム11を有する多軸ロボットが例示されているが、関節部(すなわち、回転軸)の数は、6に限定されるものではない。すなわち、ロボット1は、複数の関節部を有していればよく、例えば、7以上の関節部(すなわち、回転軸)を有するロボットアーム11を有する多軸ロボットであってもよい。また、ロボット1は、単腕ロボットでもよいし、双腕以上の多腕ロボットであってもよい。
【0023】
以下に、本発明の一実施形態に係るロボット1の概略構成について、具体的に説明する。
ロボット1は、ロボットアーム11及びエンドエフェクタ12を備える。
【0024】
ロボットアーム11は、複数の多関節機構を有する。ロボットアーム11の各関節部には、各関節部を各々駆動するモータが設けられている。ロボットアーム11は、ロボット制御装置4によりモータが駆動されることで、例えば、三次元空間を移動することができる。また、各関節には、モータの回転角度を検知するエンコーダが設けられている。
さらに、ロボットアーム11の各関節部には、関節部のトルクを検知するトルクセンサが設けられている。したがって、ロボット制御装置4は、各トルクセンサの検出値により、ロボットアーム11と他の物体との接触を検出することができる。
【0025】
エンドエフェクタ12は、ロボットアーム11の先端に取り付けられ、ワークWをピッキングする。本実施形態では、エンドエフェクタ12は、ワークWをエアー吸着式で吸着することで当該ワークWをピッキングする吸着パッドである。ただし、エンドエフェクタ12は、吸着パッドに限定されず、ワークWをピッキングするものであればよい。例えば、エンドエフェクタ12は、電磁石式でワークWを吸着するものであってもよいし、ワークWを挟持することで把持するものであってもよい。
【0026】
駆動装置2は、エンドエフェクタ12の吸着を駆動するものであって、ロボット制御装置4により制御される。本実施形態では、駆動装置2は、ロボット制御装置4から吸着機能をオンにする吸着信号を受信した場合には、吸着パッド内の空気を吸引する。これにより、エンドエフェクタ12がワークWを吸着して、ロボット1は、ワークWをピッキングすることができる。
一方、駆動装置2は、ロボット制御装置4から吸着機能を解除する吸着解除信号を受信すると、吸着パッド内に空気を供給して吸着パッド内を真空破壊する。これにより、エンドエフェクタ12によるワークWの吸着(ピッキング)が解除され、ロボット1は、当該ワークWを任意の位置に配置することができる。
【0027】
ピッキングセンサ3は、エンドエフェクタ12によるワークWのピッキングを検知するセンサである。本実施形態では、ピッキングセンサ3は、吸着パッドの内側の圧力変化からエンドエフェクタ12によるワークWの吸着を検知する。ピッキングセンサ3は、エンドエフェクタ12によるワークWの吸着を検知すると、検知信号をロボット制御装置4に出力する。ただし、本発明はこれに限定されず、ピッキングセンサ3は、エンドエフェクタ12によるワークWのピッキングを検知できれば、その検知方法には特に限定されない。例えば、ピッキングセンサ3は、公知の技術を用いてワークWのピッキングを検知してもよく、ピッキングしたワークWの重量を検知することでワークWのピッキングを検知してもよいし、感圧センサを用いることでワークWのピッキングを検知してもよい。
【0028】
ロボット制御装置4は、ワークWのピッキングを行うロボット1の動作を制御する。また、ロボット制御装置4は、ロボット1(エンドエフェクタ)によるワークWのピッキングを制御する。例えば、ロボット制御装置4は、ロボット1を移動させながらロボット1とワークWとの接触を検出した場合に吸着パッド内の空気を吸引させて上記ピッキングを実行させる。これにより、ロボット制御装置4は、ワークWの画像を用いて当該ワークWの位置や姿勢を認識する認識処理を実行することなく、ピック&プレイス動作を実行させることができる。
なお、ロボット制御装置4は、CPU又はMPUなどのマイクロプロセッサ、MCUなどのマイクロコントローラなどにより構成されてよい。
【0029】
以下に、本発明の一実施形態に係るロボット制御装置4の概略構成を説明する。
【0030】
本発明の一実施形態に係るロボット制御装置4は、動作制御部5、接触判定部6及びハンド制御部7を備える。なお、ロボット制御装置4は、駆動装置及びピッキングセンサ3と別体ではなく、一体として構成されてもよい。
【0031】
動作制御部5は、ロボットアーム11の各関節に設けられたモータの駆動を制御することにより、ロボットアーム11の動作を制御する。例えば、動作制御部5は、上記エンコーダの値に基づきロボット1の動作をフィードバック制御する。これにより、動作制御部5は、エンドエフェクタ12の位置を所望の位置に制御することができる。
【0032】
接触判定部6は、動作制御部5によりエンドエフェクタ12が下降している場合に、エンドエフェクタ12が物体(例えば、ワークW)に接触したか否かを判定する。
例えば、接触判定部6は、エンドエフェクタ12の下降動作中において、エンドエフェクタ12がワークWに接触した場合に当該エンドエフェクタ12に作用する反力(以下、「接触力」という。)を検出する接触力検出処理を実行する。そして、接触判定部6は、エンドエフェクタ12が接触力検出処理により接触力を検出した場合にはエンドエフェクタ12がワークWに接触したと判定する。
【0033】
具体的には、接触判定部6は、接触力検出処理として、ロボットアーム11の各関節部に設けられたトルクセンサの各検出値に基づいてエンドエフェクタ12に作用する反力Fを求め、当該反力Fが予め設定された第1の閾値Fth1(接触力)以上か否かを判定する。そして、接触判定部6は、エンドエフェクタ12に作用する反力Fが第1の閾値Fth1以上である場合に上記接触力を検出する。すなわち、本実施形態では接触判定部6は、エンドエフェクタ12が下降している場合に、第1の閾値Fth1(所定値)以上の反力Fを検出した場合にエンドエフェクタ12にワークWが接触したと判定する。
【0034】
ハンド制御部7は、エンドエフェクタ12によるワークWのピッキング及び当該ピッキングの解除を制御する。例えば、ハンド制御部7は、駆動装置2に吸着信号を出力することでエンドエフェクタ12にワークWを吸着させ、ロボット1に対してワークWのピッキングを実行させる。また、ハンド制御部7は、駆動装置2に吸着解除信号を出力することでエンドエフェクタ12によるワークWの吸着を解除させ、ロボット1に対してワークWのピッキングを解除させる。
【0035】
次に、本発明の一実施形態に係るロボットシステムAのピック&プレイス動作を
図2及び
図3を用いて説明する。
図2は、ロボットシステムAにおけるワークWのピッキング動作を説明する図である。
図3は、ロボットシステムAにおけるワークWのプレイス動作を説明する図である。
【0036】
まず、
図2を用いて、第1のケースC1にバラ積みされた複数のワークWから1つのワークWをピッキングする動作を説明する。
動作制御部5は、第1の位置にエンドエフェクタ12を移動させる(
図2(a))。この第1の位置は、第1のケースC1の鉛直上方の位置であって、例えば、ロボットティーチング(教示)により予め設定されている。そして、動作制御部5は、エンドエフェクタ12が第1の位置に到達すると、第1の位置からエンドエフェクタ12を下降させる第1の下降動作を実行する。ここで、接触判定部6は、第1の下降動作の実行とともに、ロボットに作用する接触力を検出する接触力検出処理を実行する。
【0037】
動作制御部5は、接触判定部6により第1の下降動作中において接触力が検出された場合には第1の下降動作を停止する。そして、ハンド制御部7は、接触判定部6により第1の下降動作中において接触力が検出された場合には、駆動装置2に吸着信号を出力してエンドエフェクタ12によるワークWのピッキングを実行させる(
図2(b))。ハンド制御部7は、駆動装置2に吸着信号を出力してから一定期間内において、ピッキングセンサ3から検知信号を受信した場合には、エンドエフェクタ12によるワークWの吸着が正常に行われたと判定する。動作制御部5は、ワークWの吸着が正常に行われたと判定された場合には、ワークWを吸着したエンドエフェクタ12を上昇させる第1の上昇動作を実行する(
図2(c))。そして、動作制御部5は、第2の位置にエンドエフェクタ12を移動させる(
図2(d))。第2の位置は、第2のケースC2の鉛直上方の位置であって、例えば、ロボットティーチング(教示)により予め設定されている。
【0038】
次に、
図3を用いて、ピッキングしたワークWを第2のケースC2に収納するプライス動作を説明する。
【0039】
動作制御部5は、エンドエフェクタ12が第2の位置に到達すると、第2の位置からエンドエフェクタ12を下降させる第2の下降動作を実行する(
図3(a))。ここで、接触判定部6は、第2の下降動作の実行とともに、ロボットに作用する接触力を検出する接触力検出処理を実行する。
【0040】
動作制御部5は、接触判定部6により第2の下降動作中において接触力が検出された場合には第2の下降動作を停止する。そして、ハンド制御部7は、接触判定部6により第2の下降動作中において接触力が検出された場合には、駆動装置2に吸着解除信号を出力してエンドエフェクタ12によるワークWのピッキングを解除させる(
図3(b))。ハンド制御部7は、駆動装置2に吸着解除信号を出力してから一定期間内において、ピッキングセンサ3からの検知信号が消失した場合には、エンドエフェクタ12によるワークWの吸着の解除が正常に行われたと判定する。動作制御部5は、ワークWの吸着の解除が正常に行われたと判定された場合には、エンドエフェクタ12を上昇させる第2の上昇動作を実行する(
図3(c))。そして、動作制御部5は、他のワークWのピッキングを実行するための第1の位置にエンドエフェクタ12を移動させる(
図3(d))。
【0041】
このように、ロボットシステムAの上述のピック&プレイス動作を繰り替えることで、第1のケースC1に収納されているワークWを1つずつピッキングして、第2のケースC2に収納する。なお、第1の位置として、複数の位置(教示点)が教示されてもよい。例えば、第1のケースC1の外形寸法に合わせてロボットアーム11の可動範囲を設定し、ワークWの取り残しが発生しないようにエンドエフェクタ12の水平位置を第1の位置として複数教示してもよい。これにより、第1のケースC内のワークWを漏れなくピッキングすることができる。
【0042】
ここで、第1のケースC1の鉛直上方において、第1の位置として位置H1及び位置H2がロボット制御装置4に設定されているとする。そして、位置H1及び位置H2のそれぞれには、順番を示す情報(以下、「順番情報」という。)が付加されている。例えば、位置H1には「1」の順番情報が付加されており、位置H2には「2」の順番情報が付加されている。ロボット制御装置4は、自装置の記憶部(不図示)から位置H1及び位置H2の情報を読み取り、各情報に付加された順番情報を抽出する。そして、ロボット制御装置4は、抽出した各順番情報に応じた順番で第1の位置を選択してピック&プレイス動作を実行する。例えば、ロボット制御装置4は、位置H1を第1の位置に選択して、ピック&プレイス動作を繰り返し実行する。そして、ロボット制御装置4は、位置H1から第1の下降動作を実行しても、接触力を検知せずに第1のケースC1の底面又は底面と同視し得る範囲の位置にエンドエフェクタ12が到達した場合には、位置H2にエンドエフェクタ12を移動させる。そして、ロボット制御装置4は、位置H2を第1の位置に選択して、ピック&プレイス動作を繰り返し実行してもよい。
【0043】
次に、本発明の一実施形態に係るロボット制御装置4の動作の流れを、
図4を用いて説明する。
図4は、本発明の一実施形態に係るロボット制御装置4の動作のフロー図である。なお、第1の位置として、n個の位置H1〜Hnが教示されているとする。
ロボット制御装置4は、変数Nを有し、この変数Nに基づいて、位置H1〜Hnから第1の位置を選択する。なお、初期条件として、変数Nは「1」に設定される。
【0044】
ロボット制御装置4は、位置H1〜Hのうち、順番情報が変数Nである位置を第1の位置に選択して、当該第1の位置にエンドエフェクタ12を移動させる(ステップS101)。ロボット制御装置4は、エンドエフェクタ12が第1の位置に到達すると、第1の位置からエンドエフェクタ12の第1の下降動作を実行するとともに、エンドエフェクタ12に作用する接触力を検出する接触力検出処理を実行する。
【0045】
接触判定部6は、第1の下降動作中において、接触力検出処理として、接触力を検出したか否かを判定する(ステップS103)。例えば、接触判定部6は、ロボットアーム11の各関節部に設けられたトルクセンサの各検出値に基づいてエンドエフェクタ12に作用する反力Fを求める。そして、接触判定部6は、当該反力Fが予め設定された第1の閾値Fth1以上かを判定する。そして、接触判定部6は、反力Fが第1の閾値Fth1以上である場合に上記接触力を検出したとする。
【0046】
動作制御部5は、接触判定部6により接触力を検出していないと判定された場合には、エンドエフェクタ12が第1のケースC1の底面又は底面と同視し得る範囲に到達したか否かを判定する(ステップS104)。そして、動作制御部5は、エンドエフェクタ12が第1のケースC1の底面又は底面と同視し得る範囲に到達していないと判定された場合には、再度、ステップS103の処理に戻る。一方、動作制御部5は、エンドエフェクタ12が第1のケースC1の底面又は底面と同視し得る範囲に到達したと判定した場合には、現在の第1の位置の鉛直下方にはピッキングするワークWがないとして、第1の下方動作及び接触力検出処理を停止する(ステップS105)。そして、ロボット制御装置4は、変数Nに1をインクリメントしてステップS101の処理に戻る(ステップS106)。
【0047】
ステップS103において、動作制御部5は、接触判定部6により第1の下降動作中において接触力が検出された場合には第1の下降動作及び接触力検出処理を停止する(ステップS107)。そして、ハンド制御部7は、駆動装置2に吸着信号を出力してエンドエフェクタ12によるワークWのピッキングを実行させる(ステップS108)。これにより、エンドエフェクタ12によるワークWの吸着が開始される。
ハンド制御部7は、駆動装置2に吸着信号を出力してから一定期間内において、エンドエフェクタ12によるワークWの吸着が正常に実行されたか否かを判定する(ステップS109)。具体的には、ハンド制御部7は、駆動装置2に吸着信号を出力してから一定期間内において、ピッキングセンサ3から検知信号を受信した場合には、エンドエフェクタ12によるワークWの吸着が正常に行われたと判定する。一方、ハンド制御部7は、駆動装置2に吸着信号を出力してから一定期間内において、ピッキングセンサ3から検知信号を受信しない場合には、エンドエフェクタ12によるワークWの吸着が正常に行われていないと判定する。
【0048】
したがって、ロボット制御装置4は、ステップS109においてワークWの吸着が正常に行われていないと判定された場合には、エンドエフェクタ12を所定の距離だけ上昇させて再度、エンドエフェクタ12を下降動作及び接触力検出処理を実行するリトライ処理を実行する(ステップS110)。なお、ロボット制御装置4は、ステップS109においてワークWの吸着が正常に行われていないと判定された場合には、第1の位置まで上昇させてから下降動作及び接触力検出処理を再度実行してもよい。
【0049】
動作制御部5は、ステップS109においてワークWの吸着が正常に行われたと判定された場合には、ワークWを吸着したエンドエフェクタ12を上昇させ(第1の上昇動作)、第2の位置にエンドエフェクタ12を移動させる(ステップS111)。
【0050】
動作制御部5は、エンドエフェクタ12が第2の位置に到達すると、第2の位置からエンドエフェクタ12の第2の下降動作を実行するとともに、エンドエフェクタ12に作用する接触力を検出する接触力検出処理を実行する(ステップS112)。
【0051】
接触判定部6は、第2の下降動作中において、接触力検出処理として、接触力を検出したか否かを判定する(ステップS113)。例えば、接触判定部6は、ロボットアーム11の各関節部に設けられたトルクセンサの各検出値に基づいてエンドエフェクタ12に作用する反力Fを求める。そして、接触判定部6は、当該反力Fが予め設定された第2の閾値Fth2以上か否かを判定する。そして、接触判定部6は、反力Fが第2の閾値Fth2以上である場合に上記接触力を検出したとする。このように、接触判定部6は、第2の下降動作中において、所定値以上の反力Fを検出した場合に、上記接触力を検出したとする。なお、第1の閾値Fth1と第2の閾値Fth2とは、同一であってもよいし、異なった値であってもよい。なお、動作制御部5は、第2の下降動作中において、接触力を検出するまで接触力検出処理を繰り返す。
【0052】
動作制御部5は、接触判定部6により第2の下降動作中において接触力が検出された場合には第2の下降動作及び接触力検出処理を停止する(ステップS114)。そして、ハンド制御部7は、駆動装置2に吸着解除信号を出力してエンドエフェクタ12によるワークWのピッキングを解除させる(ステップS115)。これにより、エンドエフェクタ12によりピッキングされたワークWが第2のケースC2に収納される。
【0053】
動作制御部5は、ワークWの吸着の解除が正常に行われた場合には、エンドエフェクタ12を上昇させ(第2の上昇動作)、ステップS101に戻る。ロボット制御装置4は、変数Nがnを超えた場合には、
図4に示す処理を終了する。
【0054】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0055】
(変形例1)上記実施形態では、ロボット制御装置4は、ロボットアーム11の各関節部に設けられたトルクセンサの各検出値に基づいて接触力を検出したが、本発明はこれに限定されない。例えば、ロボットアーム11の先端とエンドエフェクタ12との間に力センサを設けてもよい。そして、ロボット制御装置4は、この力センサが検出したエンドエフェクタ12に作用する反力に基づいて接触力を検出してもよい。例えば、ロボット制御装置4(接触判定部6)は、上記力センサが検出した反力が閾値(接触力)以上か否かを判定する。そして、ロボット制御装置4は、力センサが検出した反力が閾値以上である場合に接触力を検出する。
【0056】
(変形例2)上記実施形態では、ロボット制御装置4は、第2の下降動作中において、接触力を検出した場合にはピッキングを解除することで当該ワークWを所定の位置(例えば、第2のケースC2内)に配置したが、本発明はこれに限定されない。例えば、ロボット制御装置4は、エンドエフェクタ12を第2の位置から所定の距離だけ下降させて、接触力を検出せずにピッキングを解除してもよい。また、ロボット制御装置4は、エンドエフェクタ12が第2の位置に到達した場合には、ピッキングを解除してもよい。
このように、ロボット制御装置4は、第1のケースC1でバラ積みされたワークWをエンドエフェクタ12でピッキングした後、当該ワークWを第2のケースC2に設置してもよいし、落下させてもよい。
【0057】
(変形例3)上記実施形態では、第1の位置は、教示された位置としたが、本発明はこれに限定されない。例えば、ロボット制御装置4は、教示された位置から第1の位置を設定してもよい。例えば、ロボット制御装置4は、第1のケースC1の四隅が教示された場合には、その四隅の各点から第1の位置を複数設定してもよい。
【0058】
(変形例4)上記の第1の下降動作や第2の下降動作は、鉛直方向に限定されず、下方にエンドエフェクタ12が移動していれば、斜め方向に下降させてもよい。また、上記の第1の上昇動作や第2の上昇動作は、鉛直方向に限定されず、上方にエンドエフェクタ12が移動していれば、斜め方向に上昇させてもよい。
【0059】
以上、説明したように、本発明の一実施形態に係るロボット制御装置4は、ロボット1を移動させながら(例えば、第1の下降動作)、エンドエフェクタ12がワークWに接触を検出した場合にピッキングを実行させる。
【0060】
このような構成によれば、ロボット制御装置4は、ワークWの画像を用いて当該ワークWの位置や姿勢を認識する認識処理を実行することなく、ピック&プレイス動作を実行させることができる。したがって、ロボットによりワークWのピッキングを行うにあたって、ピッキングに係る時間を短縮することができる。
さらに、第1のケースC1内のワークWの状態が、複数種類のワークWが混在する「混載」の場合であって、認識処理を実行することなく、ワークWを1つずつピッキングすることができる。
【0061】
また、本発明の一実施形態に係るロボット制御装置4の制御方法は、バラ積みされた複数のワークのピッキングを行うロボットの動作を制御する方法である。そして、上記制御方法は、下降動作ステップ、判定ステップ、及びピッキングステップを含む。
下降動作ステップでは、ロボット制御装置4が第1の位置からエンドエフェクタ12の下降動作を実行する。判定ステップでは、下降動作中において、ロボット制御装置4は、エンドエフェクタ12がワークに接触したか否かを判定する。ピッキングステップでは、ロボット制御装置4は、判定ステップにおいて、エンドエフェクタ12がワークWに接触したと判定された場合には、エンドエフェクタ12によるピッキングを実行させる。
【0062】
このような構成によれば、ロボット制御装置4は、ワークWの画像を用いて当該ワークWの位置や姿勢を認識する認識処理を実行することなく、ピック&プレイス動作を実行させることができる。したがって、ロボットによりワークWのピッキングを行うにあたって、ピッキングに係る時間を短縮することができる。
【0063】
なお、上述した実施形態におけるロボット制御装置4の全部または一部をコンピュータで実現するようにしてもよい。この場合、上記コンピュータは、CPU、GPUなどのプロセッサ及びコンピュータ読み取り可能な記録媒体を備えてもよい。そして、学習装置Aの全部または一部の機能をコンピュータで実現するためのプログラムを上記コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムを上記プロセッサに読み込ませ、実行することによって実現してもよい。ここで、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。