<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
<ロボットシステムの概要>
ロボットシステム1の概要について説明する。図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。
ロボットシステム1は、例えば、ユーザーからの操作に応じて、ロボットが備えるエンドエフェクターによるツールの保持又は解放をロボットに行わせる。当該ツールは、例えば、電動ドライバーである。なお、当該ツールは、電動ドライバーに代えて、スパナ、ケーブル、治具等の他の道具であってもよい。例えば、ロボットシステム1は、ユーザーからの操作に応じて、ロボットが備えるエンドエフェクターによるツールの保持をロボットに行わせる。そして、ロボットシステム1は、当該ツールによる作業をロボットに行わせる。また、当該作業をロボットに行わせた後、ロボットシステム1は、ユーザーからの操作に応じて、ロボットが備えるエンドエフェクターによるツールの解放をロボットに行わせる。
ここで、ロボットシステム1と異なるロボットシステムX(例えば、従来のロボットシステム)では、ロボットを制御するロボット制御装置にロボットの動作を示す情報である教示情報を記憶させる(教示する)教示装置が備えるスイッチに対する操作によって、ユーザーは、エンドエフェクターが備える可動部を動かす場合がある。この場合、ロボットシステムXでは、ユーザーの両手のうち少なくとも片方の手が教示装置の操作に用いられてしまうため、当該可動部の動きに応じて行う必要のある作業をユーザーが上手く行うことができないことがあった。例えば、教示装置が備えるスイッチの押下によってエンドエフェクターにツールの保持又は解放を行わせる場合、エンドエフェクターに保持される前のツール、又はエンドエフェクターから解放された後のツールを支持する作業をユーザーが上手く行うことができないことがあった。また、このような場合、教示装置の大きさ、重量等が、当該作業を行うユーザーにとって負担になることがあった。
このような問題を解決するため、エンドエフェクターが備える可動部を動かすスイッチをエンドエフェクター自体に設ける方法が考えられている。しかし、このような方法では、当該スイッチに関する配線がロボットに増えてしまうだけではなく、当該スイッチを設ける空間がエンドエフェクターに必要となってしまう。これらのことは、ロボットの製造コストの増大、ロボットの大型化に繋がり得る。また、当該スイッチは、全方位から見えるわけではない。このため、当該方法では、ユーザーの作業領域が制限されてしまう場合があるとともに、ユーザーの手が当該スイッチに届かない場合もあり得る。
そこで、ロボットシステム1は、可動部を備えるエンドエフェクターと、力検出部とを備えたロボットと、当該ロボットを制御するロボット制御装置と、を備える。そして、ロボット制御装置は、力検出部が検出した外力に応じて可動部を動かす。これにより、ロボットシステム1は、エンドエフェクターの可動部を容易に動作させることができる。なお、ロボットシステム1において、ロボットは、ロボット制御装置を内蔵する構成であってもよく、外付けのロボット制御装置と無線又は有線によって互いに通信可能に接続される構成であってもよい。
以下では、ロボットシステム1の構成と、ロボットシステム1が行う処理のうち、力検出部が検出した外力に応じて、エンドエフェクターが備える可動部を動かす処理とについて説明する。
<ロボットシステムの構成>
まず、ロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、上記のロボットの一例であるロボット20と、上記の教示装置の一例である教示装置40を備える。また、ロボット20は、上記のロボット制御装置の一例であるロボット制御装置30を内蔵する。なお、ロボットシステム1は、教示装置40を備えない構成であってもよい。また、ロボット制御装置30は、教示装置40と一体に構成されてもよい。
ロボット20は、第1アームA1と、第2アームA2と、第1アームA1及び第2アームA2を支持する支持台Bと、支持台Bの内側にロボット制御装置30を備える双腕ロボットである。なお、ロボット20は、双腕ロボットに代えて、3本以上のアームを備える複腕ロボットであってもよく、1本のアームを備える単腕ロボットであってもよい。また、ロボット20は、スカラ(水平多関節)ロボット、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
支持台Bは、ロボット20が設置された設置面に直交する方向に沿って2つの部分に分割されている。なお、支持台Bは、分割されていない構成であってもよく、3つ以上の部分に分割されている構成であってもよい。当該2つの部分のうち当該設置面から遠い方の部分は、当該2つの部分のうち当該設置面から近い方の部分に対して回動可能である。当該遠い方の部分が回動する場合の回動面は、例えば、当該設置面に対して平行である。なお、当該回動面は、当該設置面に対して非平行であってもよい。
第1アームA1は、第1エンドエフェクターE1と、第1マニピュレーターM1と、第1力検出部C1を備える。
第1エンドエフェクターE1は、物体を保持するエンドエフェクターである。この一例において、第1エンドエフェクターE1は、第1エンドエフェクターE1の可動部として1以上の可動部H1を備える。以下では、一例として、第1エンドエフェクターE1が複数の可動部H1を備える場合について説明する。可動部H1のそれぞれは、例えば、第1エンドエフェクターE1の指部である。第1エンドエフェクターE1は、可動部H1同士を近づけて物体を挟んで持つことにより、当該物体を保持する。なお、可動部H1のそれぞれは、これに代えて、空気の吸引により物体を持ち上げる吸着部等の何らかの動作を行うことが可能な他の可動部であってもよい。なお、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。
第1エンドエフェクターE1は、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、第1エンドエフェクターE1は、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB(Universal Serial Bus)等の規格によって行われる。また、第1エンドエフェクターE1は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第1マニピュレーターM1は、7つの関節と、第1撮像部21を備える。また、当該7つの関節のそれぞれは、図示しないアクチュエーターを備える。すなわち、第1マニピュレーターM1を備える第1アームA1は、7軸垂直多関節型のアームである。第1アームA1は、支持台Bと、第1エンドエフェクターE1と、第1マニピュレーターM1と、当該7つの関節それぞれのアクチュエーターとによる連携した動作によって7軸の自由度の動作を行う。なお、第1アームA1は、6軸以下の自由度で動作する構成であってもよく、8軸以上の自由度で動作する構成であってもよい。
第1アームA1が7軸の自由度で動作する場合、第1アームA1は、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第1アームA1は、例えば、動作が滑らかになり、更に第1アームA1の周辺に存在する物体との干渉を容易に回避することができる。また、第1アームA1が7軸の自由度で動作する場合、第1アームA1の制御は、第1アームA1が8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
第1マニピュレーターM1が備える7つのアクチュエーターはそれぞれ、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置30から取得される制御信号に基づいて、第1マニピュレーターM1を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。また、第1マニピュレーターM1が備える7つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第1撮像部21は、例えば、CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)等の、集光された光を電気信号に変換する撮像素子を備えたカメラである。この一例において、第1撮像部21は、第1マニピュレーターM1の一部に備えられる。そのため、第1撮像部21は、第1マニピュレーターM1の動きに応じて移動する。また、第1撮像部21が撮像可能な範囲は、第1アームA1の動きに応じて変化する。第1撮像部21は、当該範囲の二次元画像を撮像する。なお、第1撮像部21は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
また、第1撮像部21は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。なお、第1撮像部21は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第1力検出部C1は、第1エンドエフェクターE1と第1マニピュレーターM1の間に備えられる。第1力検出部C1は、例えば、力センサーである。第1力検出部C1は、第1エンドエフェクターE1に作用した外力、又は第1エンドエフェクターE1により保持された物体に作用した外力を検出する。当該外力には、第1エンドエフェクターE1を並進させる並進力、又は当該物体を並進させる並進力が含まれる。また、当該外力には、第1エンドエフェクターE1を回転させる回転モーメント(トルク)、又は当該物体を回転させる回転モーメント(トルク)が含まれる。より具体的には、第1力検出部C1は、第1力検出部C1に対応付けられた第1力検出座標系におけるX軸、Y軸、Z軸、U軸、V軸、W軸のそれぞれに沿った方向に作用した当該外力を検出する。ここで、U軸は、当該X軸周りの回転における回転角を示す軸のことである。また、V軸は、当該Y軸周りの回転における回転角を示す軸のことである。また、W軸は、当該Z軸周りの回転における回転角を示す軸のことである。すなわち、当該X軸に沿った方向に作用した外力は、当該X軸に沿った方向に第1エンドエフェクターE1又は当該物体を並進させる並進力のことである。また、当該Y軸に沿った方向に作用した外力は、当該Y軸に沿った方向に第1エンドエフェクターE1又は当該物体を並進させる並進力のことである。また、当該Z軸に沿った方向に作用した外力は、当該Z軸に沿った方向に第1エンドエフェクターE1又は当該物体を並進させる並進力のことである。また、当該U軸に沿った方向に作用した外力は、当該U軸に沿った方向(すなわち、当該X軸周り)に第1エンドエフェクターE1又は当該物体を回転させる回転モーメントのことである。また、当該V軸に沿った方向に作用した外力は、当該V軸に沿った方向(すなわち、当該Y軸周り)に第1エンドエフェクターE1又は当該物体を回転させる回転モーメントのことである。また、当該W軸に沿った方向に作用した外力は、当該W軸に沿った方向(すなわち、当該Z軸周り)に第1エンドエフェクターE1又は当該物体を回転させる回転モーメントのことである。このように、第1力検出部C1は、6軸(すなわち、当該X軸、当該Y軸、当該Z軸、当該U軸、当該V軸、当該W軸)の力センサーである。第1力検出部C1は、検出した外力の大きさを示す値を出力値として含む情報である第1外力情報を通信によりロボット制御装置30へ出力する。
第1外力情報は、ロボット制御装置30による第1アームA1の制御のうちの第1外力情報に基づく力制御である第1力制御に用いられる。第1力制御は、第1外力情報が示す外力が予め決められた条件である第1終了条件を満たす状態を実現するように第1マニピュレーターM1を動作させる制御である。第1終了条件は、第1力制御による第1マニピュレーターM1の動作をロボット制御装置30が終了させるための条件である。例えば、第1力制御は、インピーダンス制御等のコンプライアントモーション制御のことである。
なお、第1力検出部C1は、5軸以下の力センサーであってもよく、7軸以上の力センサーであってもよい。また、第1力検出部C1は、トルクセンサー等の第1エンドエフェクターE1に作用した外力、又は第1エンドエフェクターE1により保持された物体に作用した外力を検出する他のセンサーであってもよい。また、第1力検出部C1は、第1エンドエフェクターE1と第1マニピュレーターM1の間に備えられる構成に代えて、ロボット20の他の部位に備えられる構成であってもよい。この場合、第1力検出部C1は、当該部位に作用する外力を検出する。
第1力検出部C1は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。なお、第1力検出部C1とロボット制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
第2アームA2は、第2エンドエフェクターE2と、第2マニピュレーターM2と、第2力検出部C2を備える。
第2エンドエフェクターE2は、物体を保持するエンドエフェクターである。この一例において、第2エンドエフェクターE2は、第2エンドエフェクターE2の可動部として1以上の可動部H2を備える。以下では、一例として、第2エンドエフェクターE2が複数の可動部H2を備える場合について説明する。可動部H2のそれぞれは、例えば、第2エンドエフェクターE2の指部である。第2エンドエフェクターE2は、可動部H2同士を近づけて物体を挟んで持つことにより、当該物体を保持する。なお、可動部H2のそれぞれは、これに代えて、空気の吸引により物体を持ち上げる吸着部等の何らかの動作を行うことが可能な他の可動部であってもよい。
第2エンドエフェクターE2は、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、第2エンドエフェクターE2は、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。また、第2エンドエフェクターE2は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第2マニピュレーターM2の構成は、第1マニピュレーターM1の構成と同様であるため、説明を省略する。ただし、第2マニピュレーターM2が備える撮像部は、第1撮像部21に代えて、第2撮像部22である。第2撮像部22の構成は、第1撮像部21の構成と同様の構成であるため、説明を省略する。
第2力検出部C2の構成は、第1力検出部C1の構成と同様の構成であるため、説明を省略する。第2力検出部C2は、第2エンドエフェクターE2と第2マニピュレーターM2の間に備えられる。第2力検出部C2は、第2エンドエフェクターE2に作用した外力、又は第2エンドエフェクターE2により保持された物体に作用した外力を検出する。第2力検出部C2は、検出した外力の大きさを示す値を出力値として含む情報である第2外力情報を通信によりロボット制御装置30へ出力する。
第2外力情報は、ロボット制御装置30による第2アームA2の制御のうちの第2外力情報に基づく力制御である第2力制御に用いられる。第2力制御は、第2外力情報が示す外力が予め決められた条件である第2終了条件を満たす状態を実現するように第2マニピュレーターM2を動作させる制御である。第2終了条件は、第2力制御による第2マニピュレーターM2の動作をロボット制御装置30が終了させるための条件である。例えば、第2力制御は、インピーダンス制御等のコンプライアントモーション制御のことである。
また、ロボット20は、第3撮像部23と、第4撮像部24を備える。
第3撮像部23は、例えば、CCD、CMOS等の、集光された光を電気信号に変換する撮像素子を備えたカメラである。第3撮像部23は、第4撮像部24が撮像可能な範囲を第4撮像部24とともにステレオ撮像可能な部位に備えられる。第3撮像部23は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。なお、第3撮像部23は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第4撮像部24は、例えば、CCD、CMOS等の、集光された光を電気信号に変換する撮像素子を備えたカメラである。第4撮像部24は、第3撮像部23が撮像可能な範囲を第3撮像部23とともにステレオ撮像可能な部位に備えられる。第4撮像部24は、ケーブルによって通信可能にロボット制御装置30と接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。なお、第4撮像部24は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
上記で説明したロボット20が備える各機能部は、この一例において、ロボット20に内蔵されたロボット制御装置30から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット20は、ロボット制御装置30を内蔵する構成に代えて、外部に設置されたロボット制御装置30により制御される構成であってもよい。また、ロボット20は、第1撮像部21、第2撮像部22、第3撮像部23、第4撮像部24のうちの一部又は全部を備えない構成であってもよい。
ロボット制御装置30は、少なくとも1つのプロセッサーと、少なくとも1つのメモリーとによって構成される。ロボット制御装置30において、当該少なくとも1つのプロセッサーは、1つの情報処理装置に備えられる構成であってもよく、複数の情報処理装置に分散されて備えられている構成であってもよい。また、ロボット制御装置30において、当該少なくとも1つのメモリーは、1つの情報処理装置に備えられる構成であってもよく、複数の情報処理装置に分散されて備えられている構成であってもよい。
図1に示した例では、ロボット制御装置30は、情報処理装置PC1に備えられた1つのプロセッサーであるプロセッサー31と、情報処理装置PC1に備えられた1つのメモリーであるメモリー32とによって構成されている。なお、情報処理装置PC1は、プロセッサー31に加えて、他のプロセッサーを備える構成であってもよく、メモリー32に加えて、他のメモリーを備える構成であってもよい。
情報処理装置PC1は、例えば、ワークステーション、デスクトップPC(Personal Computer)、ノートPC、タブレットPC、多機能携帯電話端末(スマートフォン)、通信機能付きの電子書籍リーダー、PDA(Personal Digital Assistant)等である。
プロセッサー31は、例えば、CPU(Central Processing Unit)である。なお、プロセッサー31は、FPGA(Field-Programmable Gate Array)等の他のプロセッサーであってもよい。プロセッサー31は、ロボット制御装置30が備えるメモリーに格納された各種の指令を実行する。また、プロセッサー31は、他の装置のメモリーに格納された各種の指令を実行する。
メモリー32は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。すなわち、メモリー32は、一時的な記憶装置と、非一時的な記憶装置とを含む。なお、メモリー32は、情報処理装置PC1に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー32は、プロセッサー31又は他の装置のプロセッサーが処理する各種の情報、指令321、322等のコンピューターにより実行可能な各種の指令(例えば、プログラム、コード等)、各種の画像等を格納する。
指令321及び指令322はそれぞれ、プロセッサー31がロボット制御装置30を構成するためにプロセッサー31が実行する複数の指令(すなわち、コンピューターにより実行可能な複数の指令)のうちの一部である。
また、ロボット制御装置30は、他の装置と通信を行うため、ハードウェア機能部として通信部34を備える。
通信部34は、USB等のデジタル入出力ポート、イーサネット(登録商標)ポート等を含んで構成される。
なお、ロボット制御装置30は、1つのプロセッサー31と、1つのメモリー32とを備える情報処理装置PC1に代えて、図2に示したように、複数の情報処理装置のうちの一部又は全部によって構成されてもよい。図2は、複数の情報処理装置によってロボット制御装置30が構成される場合におけるロボット制御装置30のハードウェア構成の一例である。
図2に示した情報処理装置PC2は、1つのプロセッサーであるプロセッサー41と、1つのメモリーであるメモリー42と、通信部44を備える。なお、情報処理装置PC2は、プロセッサー41に加えて、他のプロセッサーを備える構成であってもよい。また、情報処理装置PC2は、メモリー42に加えて、他のメモリーを備える構成であってもよい。
情報処理装置PC2は、例えば、ワークステーション、デスクトップPC、ノートPC、タブレットPC、多機能携帯電話端末(スマートフォン)、通信機能付きの電子書籍リーダー、PDA等である。なお、情報処理装置PC2は、教示装置40であってもよい。
プロセッサー41は、CPUである。なお、プロセッサー41は、FPGA等の他のプロセッサーであってもよい。プロセッサー41は、メモリー32に格納された各種の指令を実行する。また、プロセッサー41は、他の装置のメモリーに格納された各種の指令を実行する。
メモリー42は、例えば、HDD、SSD、EEPROM、ROM、RAM等を含む。すなわち、メモリー42は、一時的な記憶装置と、非一時的な記憶装置とを含む。なお、メモリー42は、情報処理装置PC2に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー42は、プロセッサー41又は他の装置のプロセッサーが処理する各種の情報、コンピューターにより実行可能な各種の指令(例えば、プログラム、コード等)、各種の画像等を格納する。
通信部44は、USB等のデジタル入出力ポート、イーサネット(登録商標)ポート等を含んで構成される。
図2に示した情報処理装置PC3は、1つのプロセッサーであるプロセッサー51と、1つのメモリーであるメモリー52と、通信部54を備える。なお、情報処理装置PC3は、プロセッサー51に加えて、他のプロセッサーを備える構成であってもよい。また、情報処理装置PC3は、メモリー52に加えて、他のメモリーを備える構成であってもよい。
情報処理装置PC3は、例えば、ワークステーション、デスクトップPC、ノートPC、タブレットPC、多機能携帯電話端末(スマートフォン)、通信機能付きの電子書籍リーダー、PDA等である。
プロセッサー51は、CPUである。なお、プロセッサー51は、FPGA等の他のプロセッサーであってもよい。プロセッサー51は、メモリー52に格納された各種の指令を実行する。また、プロセッサー51は、他の装置のメモリーに格納された各種の指令を実行する。
メモリー52は、例えば、HDD、SSD、EEPROM、ROM、RAM等を含む。すなわち、メモリー52は、一時的な記憶装置と、非一時的な記憶装置とを含む。なお、メモリー52は、情報処理装置PC3に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー52は、プロセッサー51又は他の装置のプロセッサーが処理する各種の情報、コンピューターにより実行可能な各種の指令(例えば、プログラム、コード等)、各種の画像等を格納する。
通信部54は、USB等のデジタル入出力ポート、イーサネット(登録商標)ポート等を含んで構成される。
図2に示した例では、情報処理装置PC1と、情報処理装置PC2とが無線又は有線によって互いに通信可能に接続されている。また、当該例では、情報処理装置PC1と、情報処理装置PC3とがLAN(Local Area Network)を介して無線又は有線によって互いに通信可能に接続されている。また、当該例では、情報処理装置PC2と、情報処理装置PC3とがLANを介して無線又は有線によって互いに通信可能に接続されている。
図2に示した例では、ロボット制御装置30は、プロセッサー31と、プロセッサー41と、プロセッサー51のうちの少なくとも1つと、メモリー32と、メモリー42と、メモリー52のうちの少なくとも1つとによって構成される。プロセッサー31と、プロセッサー41と、プロセッサー51のうちの2つ以上によってロボット制御装置30が構成される場合、ロボット制御装置30を構成する当該2つ以上のプロセッサーは、通信部による通信を行うことにより、連携してロボット制御装置30の機能を実現する。また、当該場合、当該2つ以上のプロセッサーは、メモリー32と、メモリー42と、メモリー52のうちの少なくとも1つに格納された指令に基づいて、ロボット制御装置30の機能による処理を実行する。
なお、図2に示した例のように、ロボット制御装置30が複数の情報処理装置によって構成される場合、教示装置40は、当該複数の情報処理装置の少なくとも1つと通信可能に接続される。
図1に戻る。ロボット制御装置30は、ロボット20を制御する。例えば、ロボット制御装置30は、第1力検出部C1が検出した外力に応じて可動部H1を動かす。これにより、ロボット制御装置30は、第1エンドエフェクターE1の可動部H1を容易に動作させることができる。また、ロボット制御装置30は、第2力検出部C2が検出した外力に応じて可動部H2を動かす。これにより、ロボット制御装置30は、第2エンドエフェクターE2の可動部H2を容易に動作させることができる。
また、ロボット制御装置30は、この一例において、動作モードとして、ロボット20に予め決められた動作を行わせる第1モード、ロボット20の動作のオンライン教示を行う第2モード、ロボット20の動作の直接教示を行う第3モード、力検出部(この一例において、第1力検出部C1、第2力検出部C2)が検出した外力に応じて可動部(この一例において、可動部H1、可動部H2)を動かす第4モードを有する。オンライン教示は、教示装置40を介して受け付けた操作(例えば、ジョグ操作)に応じてロボット制御装置30がロボット20を動かし、ロボット20の動作を示す教示情報をロボット制御装置30に記憶させる(教示する)ことを意味する。オンライン教示については、既知の方法によって行われてもよく、これから開発される方法によって行われてもよい。教示情報は、例えば、ロボット20の制御点(例えば、TCP(Tool Center Point)等)を経由させる1以上の教示点を示す情報を含む情報のことである。なお、教示情報は、これに代えて、ロボット20の動作を示す他の情報であってもよい。直接教示は、ユーザーが手動で第1マニピュレーターM1と第2マニピュレーターM2とのいずれか一方又は両方を動かし、教示情報をロボット制御装置30に記憶させる(教示する)ことを意味する。直接教示については、既知の方法によって行われてもよく、これから開発される方法によって行われてもよい。なお、第1モードでは、第2モード又は第3モードによって記憶された教示情報が示す動作を、予め決められた動作としてロボット制御装置30がロボット20に行わせる。また、この一例において、第4モードでは、ロボット制御装置30は、第1マニピュレーターM1及び第2マニピュレーターM2を動作させない。これは、第1エンドエフェクターE1の可動部H1、第2エンドエフェクターE2の可動部H2の少なくとも一方に対して作業を行うユーザーの安全性を確保するためである。なお、第4モードでは、ロボット制御装置30は、第1マニピュレーターM1と第2マニピュレーターM2とのいずれか一方又は両方を動かす構成であってもよい。ロボット制御装置30は、ユーザーから受け付けた操作に応じて、又は教示装置40から受け付けた要求に応じて、動作モードを第1モード、第2モード、第3モード、第4モードのいずれかに切り替える。
なお、図1に示した例では、ロボット制御装置30は、教示装置40を介してユーザーからの操作を受け付ける。ここで、ロボット制御装置30は、図示しない入力装置と、図示しない表示装置とのそれぞれと無線又は有線によって互いに通信可能に接続される構成であってもよい。当該入力装置は、キーボード、マウス、タッチパッド等のことである。当該表示装置は、液晶ディスプレイパネル、有機EL(ElectroLuminescence)ディスプレイパネル等のディスプレイパネルを備えた装置のことである。この場合、ロボット制御装置30は、当該入力装置を介して、ユーザーから操作を受け付ける。
教示装置40は、例えば、ティーチングペンダントである。ユーザーから受け付けた操作に応じて、教示動作をロボット制御装置30に教示する(記憶させる)。また、教示装置40は、ユーザーから受け付けた操作に応じて、ロボット制御装置30の動作モードを第1モード、第2モード、第3モード、第4モードのいずれかに切り替える要求をロボット制御装置30に出力する。
ここで、教示装置40は、タッチパネルTPを備える。
タッチパネルTPは、液晶ディスプレイパネル、有機ELディスプレイパネル等のディスプレイパネルを備えた表示装置と一体に構成された入力装置であり、ユーザーからの操作を受け付ける。なお、教示装置40は、タッチパネルTPに代えて、表示装置と入力装置とを別体として備える構成であってもよい。この場合、入力装置は、キーボード、マウス、タッチパッド等である。また、教示装置40は、タッチパネルTPに加えて、1以上のハードウェアキーを備える。ハードウェアキーには、例えば、イネーブルスイッチ、ロボット20の緊急停止ボタン、専用の鍵を差し込んで回すことによりロボット20の動作モードを切り替えるロータリースイッチ等が含まれる。
教示装置40は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。なお、教示装置40とロボット制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
<ロボット制御装置の機能構成>
以下、図3を参照し、ロボット制御装置30の機能構成について説明する。図3は、ロボット制御装置30の機能構成の一例を示す図である。
ロボット制御装置30は、メモリー32と、通信部34と、制御部36を備える。
制御部36は、ロボット制御装置30の全体を制御する。制御部36は、操作受付部361と、外力情報取得部363と、動作モード切替部365と、エンドエフェクター制御部367と、マニピュレーター制御部369を備える。制御部36が備えるこれらの機能部は、例えば、プロセッサー31が、メモリー32に記憶された指令321、322等の各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
操作受付部361は、図示しない入力装置がロボット制御装置30と通信可能に接続されている場合、当該入力装置を介してユーザーからの操作を受け付ける。また、操作受付部361は、他の装置(例えば、教示装置40)からの要求をロボット制御装置30に対する操作として受け付ける。
外力情報取得部363は、第1力検出部C1からの出力値を含む外力情報を第1力検出部C1から取得する。また、外力情報取得部363は、第2力検出部C2からの出力値を含む外力情報を第2力検出部C2から取得する。
動作モード切替部365は、操作受付部361が受け付けた操作に応じて、ロボット制御装置30の動作モードを、第1モード、第2モード、第3モード、第4モードのいずれかに切り替える。
エンドエフェクター制御部367は、第1エンドエフェクターE1が備える1以上の可動部H1と、第2エンドエフェクターE2が備える1以上の可動部H2とのそれぞれを動作させる。
マニピュレーター制御部369は、第1マニピュレーターM1と、第2マニピュレーターM2とのそれぞれを動作させる。
<エンドエフェクターが備える可動部をロボット制御装置が動かす処理>
以下、図4を参照し、第1力検出部C1が検出した外力に応じて、第1エンドエフェクターE1が備える複数の可動部H1をロボット制御装置30が動かす処理について説明する。図4は、第1力検出部C1が検出した外力に応じて、第1エンドエフェクターE1が備える複数の可動部H1をロボット制御装置30が動かす処理の流れの一例を示す図である。なお、第2力検出部C2が検出した外力に応じて、第2エンドエフェクターE2が備える複数の可動部H2をロボット制御装置30が動かす処理についての説明は、以下の説明を、第1力検出部C1、第1外力情報、可動部H1のそれぞれを、第2力検出部C2、第2外力情報、可動部H2のそれぞれに読み替えた説明と同様であるため、説明を省略する。
動作モード切替部365は、ロボット制御装置30の動作モードを第4モードに切り替える操作を操作受付部361が受け付けるまで待機する(ステップS110)。ここで、ロボット制御装置30の動作モードの切り替えについて説明する。
ロボット制御装置30は、動作モードが意図しない操作によって切り替わった場合、ロボット20に意図しない動作を行わせてしまうことがある。このため、動作モード切替部365は、予め決められた条件が満たされなければロボット制御装置30の動作モードを切り替えない。例えば、教示装置40は、教示装置40が備えるロータリースイッチに鍵が差し込まれてから第4モードを示す位置まで回された場合、ロボット制御装置30の動作モードを第4モードに切り替える要求をロボット制御装置30に出力する。操作受付部361は、ロボット制御装置30が教示装置40から当該要求を取得した場合、当該要求を、当該動作モードを第4モードに切り替える操作として受け付ける。この場合、当該予め決められた条件は、当該ロータリースイッチに鍵が差し込まれてから第4モードを示す位置まで回されることである。また、例えば、教示装置40は、タッチパネルTPに予め表示された動作モード切替画面においてユーザーから当該動作モードを第4モードに切り替える操作を受け付けた後、タッチパネルTPにパスワード入力画面を表示させる。そして、教示装置40は、タッチパネルTPに表示させたパスワード入力画面に予め決められたパスワードが入力された場合、当該要求をロボット制御装置30に出力する。この場合、当該予め決められた条件は、タッチパネルTPに表示されたパスワード入力画面において予め決められたパスワードが入力されたことである。また、例えば、ロボット制御装置30に図示しない入力装置及び表示装置が接続されている場合、ロボット制御装置30は、当該表示装置に予め表示された動作モード切替画面においてユーザーから当該動作モードを第4モードに切り替える操作を受け付けた後、当該表示装置にパスワード入力画面を表示させる。そして、操作受付部361は、当該表示装置に表示させたパスワード入力画面に予め決められたパスワードが入力された場合、動作モード切替部365は、ステップS110において、ロボット制御装置30の動作モードを第4モードに切り替える操作を操作受付部361が受け付けたと判定する。この場合、当該予め決められた条件は、当該表示装置に表示されたパスワード入力画面において予め決められたパスワードが入力されたことである。なお、当該予め決められた条件は、他の条件であってもよい。
ロボット制御装置30の動作モードを第4モードに切り替える操作を操作受付部361が受け付けたと判定した場合(ステップS110−YES)、動作モード切替部365は、ロボット制御装置30の動作モードを第4モードに切り替える。そして、外力情報取得部363は、第1力検出部C1から第1外力情報を取得する(ステップS120)。
次に、エンドエフェクター制御部367は、ステップS120において外力情報取得部363が第1力検出部C1から取得した第1外力情報が示す外力が、第1方向に向かって作用した外力である第1方向外力か否かを判定する(ステップS130)。第1方向は、第1力検出座標系におけるX軸、Y軸、Z軸、U軸、V軸、W軸のいずれかに沿った方向のうちの正方向又は負方向のことである。以下では、一例として、当該Z軸の正方向が、第1エンドエフェクターE1から第1マニピュレーターM1に向かう方向のうち、第1マニピュレーターM1が備える関節のうち第1エンドエフェクターE1に最も近い関節の回動軸に沿った方向と一致している場合について説明する。また、以下では、一例として、第1方向が、W軸の正方向である場合について説明する。すなわち、この一例において、第1方向は、当該回動軸に沿って第1エンドエフェクターE1を見た場合における時計回りの方向(当該Z軸の正方向に向かって第1エンドエフェクターE1を見た場合における時計回りの方向)である。
ステップS120において外力情報取得部363が第1力検出部C1から取得した第1外力情報が示す外力が第1方向外力であると判定した場合(ステップS130−YES)、エンドエフェクター制御部367は、第1エンドエフェクターE1が備える複数の可動部H1に保持動作を行わせる(ステップS140)。ここで、保持動作は、当該複数の可動部H1同士を近づける動作のことである。なお、エンドエフェクター制御部367は、保持動作に代えて、他の動作をステップS140において当該複数の可動部H1に行わせる構成であってもよい。また、エンドエフェクター制御部367は、ステップS130において、当該外力が第1方向外力であり、且つ、当該外力の大きさが予め決められた閾値である第1閾値以上であるか否かを判定する構成であってもよい。また、エンドエフェクター制御部367は、ステップS130において、当該外力が、当該外力に応じた他の条件を満たすか否かを判定する構成であってもよい。
次に、エンドエフェクター制御部367は、ロボット制御装置30の動作モードを第4モードから他の動作モードに切り替える操作、すなわち、第4モードを終了させる操作を操作受付部361が受け付けたか否かを判定する(ステップS150)。第4モードを終了させる操作を操作受付部361が受け付けたと判定した場合(ステップS150−YES)、エンドエフェクター制御部367は、処理を終了する。一方、第4モードを終了させる操作を操作受付部361が受け付けていないとエンドエフェクター制御部367が判定した場合(ステップS150−NO)、外力情報取得部363は、ステップS120に遷移し、第1力検出部C1から第1外力情報を再び取得する。
一方、ステップS120において外力情報取得部363が第1力検出部C1から取得した第1外力情報が示す外力が第1方向外力ではないと判定した場合(ステップS130−NO)、エンドエフェクター制御部367は、当該外力が、第2方向に向かって作用した外力である第2方向外力か否かを判定する(ステップS160)。第2方向は、第1方向と異なる方向であって第1力検出座標系におけるX軸、Y軸、Z軸、U軸、V軸、W軸のいずれかに沿った方向のうちの正方向又は負方向のことである。以下では、一例として、第2方向が、W軸の負方向である場合について説明する。すなわち、この一例において、第2方向は、当該Z軸の正方向に向かって第1エンドエフェクターE1を見た場合における反時計回りの方向である。
ステップS120において外力情報取得部363が第1力検出部C1から取得した第1外力情報が示す外力が第2方向外力であると判定した場合(ステップS160−YES)、エンドエフェクター制御部367は、第1エンドエフェクターE1が備える複数の可動部H1に解放動作を行わせる(ステップS170)。ここで、解放動作は、当該複数の可動部H1同士を遠ざける動作のことである。なお、エンドエフェクター制御部367は、解放動作に代えて、他の動作をステップS170において当該複数の可動部H1に行わせる構成であってもよい。また、エンドエフェクター制御部367は、ステップS160において、当該外力が第2方向外力であり、且つ、当該外力の大きさが予め決められた閾値である第2閾値以上であるか否かを判定する構成であってもよい。また、エンドエフェクター制御部367は、ステップS130において、当該外力が、当該外力に応じた他の条件を満たすか否かを判定する構成であってもよい。
ステップS170の処理が行われた後、エンドエフェクター制御部367は、ステップS150に遷移し、第4モードを終了させる操作を操作受付部361が受け付けたか否かを判定する。
一方、ステップS120において外力情報取得部363が第1力検出部C1から取得した第1外力情報が示す外力が第2方向外力ではないとエンドエフェクター制御部367が判定した場合(ステップS160−NO)、外力情報取得部363は、ステップS120に遷移し、第1力検出部C1から第1外力情報を再び取得する。
以上のように、ロボット制御装置30は、第1力検出部C1が検出した外力に応じて可動部H1を動かす。これにより、ロボット制御装置30は、第1エンドエフェクターE1の可動部H1を容易に動作させることができる。また、ロボット制御装置30は、図4に示した処理と同様の処理によって、第2力検出部C2が検出した外力に応じて可動部H2を動かす。これにより、ロボット制御装置30は、第2エンドエフェクターE2の可動部H2を容易に動作させることができる。
なお、ロボット制御装置30は、上記において説明した処理であって第1エンドエフェクターE1が備える可動部H1をロボット制御装置30が動かす処理を、第1モード〜第3モードのいずれかにおいて実行する構成であってもよい。この場合、ロボット制御装置30は、動作モードとして第4モードを有さなくてもよい。また、当該場合、ロボット制御装置30は、当該処理の実行を、第1マニピュレーターM1の動作が停止している場合において実行することが望ましい。これは、可動部H1の動きに応じて行う必要のある作業をユーザーが安全に行うことができるようにするためである。
また、ロボット制御装置30は、第1エンドエフェクターE1が複数の可動部H1を備える場合、ステップS140とステップS170の少なくとも一方において、複数の可動部H1の一部を動作させる構成であってもよい。例えば、ロボット制御装置30は、第1エンドエフェクターE1が複数の可動部H1として、4つの指部と、1つの掌部とを備える場合、ステップS140とステップS170の少なくとも一方において、当該4つの指部と、当該掌部とのいずれか動作させる構成であってもよい。
また、上記において説明したエンドエフェクター制御部367は、ロボット制御装置30と別体の装置が備えるプロセッサーが実現している機能であってもよい。この場合、ロボット制御装置30は、当該装置を制御し、上記の説明においてエンドエフェクター制御部367が行う処理を当該装置に行わせる。また、当該場合、当該装置は、ロボット制御装置30とともにロボット20に内蔵される構成であってもよく、ロボット20の外部に設置され、ロボット20と無線又は有線によって互いに通信可能に接続される構成であってもよい。
また、上記において説明した第1力検出部C1は、第1エンドエフェクターE1の自重等の重力の影響をキャンセルする調整が行われている構成であってもよく、当該調整が行われていない構成であってもよい。
また、上記において説明した第1力検出部C1は、第1エンドエフェクターE1と第1マニピュレーターM1の間以外の如何なる位置に設けられてもよい。また、上記において説明した第2力検出部C2は、第2エンドエフェクターE2と第2マニピュレーターM2の間以外の如何なる位置に設けられてもよい。
<実施形態の変形例>
以下、図5を参照し、実施形態の変形例について説明する。なお、実施形態の変形例では、実施形態と同様な構成部に対して同じ符号を付して説明を省略する。
図5は、実施形態の変形例に係るロボットシステム2の一例を示す構成図である。実施形態の変形例では、ロボットシステム2は、単腕ロボットであるロボット20aと、ロボット20aと別体のロボット制御装置30と、教示装置40を備える。そして、ロボット制御装置30は、ロボット20aと無線又は有線によって互いに通信可能に接続される。なお、ロボットシステム2は、教示装置40を備えない構成であってもよい。また、ロボット制御装置30は、教示装置40と一体に構成されてもよい。また、ロボットシステム2では、ロボット制御装置30は、ロボット20aに内蔵される構成であってもよい。
<ロボットシステムの構成>
以下、図5を参照し、ロボットシステム2の構成について説明する。
ロボット20aは、第3アームA3と、第3アームA3を支持する支持台B3を備える単腕ロボットである。
第3アームA3は、第3エンドエフェクターE3と、第3マニピュレーターM3と、第3力検出部C3を備える。
第3エンドエフェクターE3は、物体を保持するエンドエフェクターである。この一例において、第3エンドエフェクターE3は、第3エンドエフェクターE3の可動部として1以上の可動部H3を備える。以下では、一例として、第3エンドエフェクターE3が複数の可動部H3を備える場合について説明する。可動部H3のそれぞれは、例えば、第3エンドエフェクターE3の指部である。第3エンドエフェクターE3は、可動部H3同士を近づけて物体を挟んで持つことにより、当該物体を保持する。なお、可動部H3のそれぞれは、これに代えて、空気の吸引により物体を持ち上げる吸着部等の何らかの動作を行うことが可能な他の可動部であってもよい。
第3エンドエフェクターE3は、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、第3エンドエフェクターE3は、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)、USB等の規格によって行われる。また、第3エンドエフェクターE3は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第3マニピュレーターM3は、6つの関節を備える。また、6つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、第3マニピュレーターM3を備える第3アームA3は、6軸垂直多関節型のアームである。なお、第3アームA3は、これに代えて、6軸水平多関節型のアームであってもよい。第3アームA3は、支持台B3と、第3エンドエフェクターE3と、第3マニピュレーターM3と、第3マニピュレーターM3が備える6つの関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、第3アームA3は、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
第3マニピュレーターM3が備える6つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置30から取得される制御信号に基づいて、第3マニピュレーターM3を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、第3マニピュレーターM3が備える6つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
第3力検出部C3の構成は、第1力検出部C1の構成と同様の構成であるため、説明を省略する。第3力検出部C3は、第3エンドエフェクターE3と第3マニピュレーターM3の間に備えられる。第3力検出部C3は、第3エンドエフェクターE3に作用した外力、又は第3エンドエフェクターE3により保持された物体に作用した外力を検出する。第3力検出部C3は、検出した外力の大きさを示す値を出力値として含む情報である第3外力情報を通信によりロボット制御装置30へ出力する。
第3外力情報は、ロボット制御装置30による第3アームA3の制御のうちの第3外力情報に基づく力制御である第3力制御に用いられる。第3力制御は、第3外力情報が示す外力が予め決められた条件である第3終了条件を満たす状態を実現するように第3マニピュレーターM3を動作させる制御である。第3終了条件は、第3力制御による第3マニピュレーターM3の動作をロボット制御装置30が終了させるための条件である。例えば、第3力制御は、インピーダンス制御等のコンプライアントモーション制御のことである。
ロボットシステム2では、ロボット制御装置30は、第3力検出部C3が検出した外力に応じて可動部H3を動かす。すなわち、前述の外力情報取得部363は、第3力検出部C3が検出した外力の大きさを示す値を出力値として含む情報である第3外力情報を第3力検出部C3から取得する。また、エンドエフェクター制御部367は、第3エンドエフェクターE3が備える1以上の可動部H3を動かす。これにより、ロボット制御装置30は、第3エンドエフェクターE3の可動部H3を容易に動作させることができる。
なお、上記において説明した複数の可動部H1のうちの1つは、第1可動部の一例である。また、当該複数の可動部H1のうち第1可動部の一例と異なる可動部H1は、第2可動部の一例である。
また、上記において説明した複数の可動部H2のうちの1つは、第1可動部の一例である。また、当該複数の可動部H2のうち第1可動部の一例と異なる可動部H2は、第2可動部の一例である。
また、上記において説明した複数の可動部H3のうちの1つは、第1可動部の一例である。また、当該複数の可動部H3のうち第1可動部の一例と異なる可動部H3は、第2可動部の一例である。
以上のように、ロボット制御装置30は、力検出部(この一例において、第1力検出部C1、第2力検出部C2、第3力検出部C3のそれぞれ)が検出した外力に応じて第1可動部(この一例において、可動部H1、可動部H2、可動部H3のそれぞれ)を動かす。これにより、ロボット制御装置30は、エンドエフェクター(この一例において、第1エンドエフェクターE1、第2エンドエフェクターE2、第3エンドエフェクターE3のそれぞれ)の可動部を容易に動作させることができる。
また、ロボット制御装置30は、6軸の力センサーが検出した外力に応じて第1可動部を動かす。これにより、ロボット制御装置30は、6軸の力センサーが検出した外力に基づいて、エンドエフェクターの可動部を容易に動作させることができる。
また、ロボット制御装置30は、トルクセンサーが検出した外力に応じて第1可動部を動かす。これにより、ロボット制御装置30は、トルクセンサーが検出した外力に基づいて、エンドエフェクターの可動部を容易に動作させることができる。
また、ロボット制御装置30は、力検出部が検出した外力が第1方向に加えられた外力であった場合、第1可動部と第2可動部(この一例において、可動部H1、可動部H2、可動部H3のそれぞれ)とを近づける。これにより、ロボット制御装置30は、エンドエフェクターに物体の把持を容易に行わせることができる。
また、ロボット制御装置30は、力検出部が検出した外力が第1方向と異なる第2方向に加えられた外力であった場合、第1可動部と第2可動部とを遠ざける。これにより、ロボット制御装置30は、エンドエフェクターに物体の解放を容易に行わせることができる。
また、ロボット制御装置30は、動作モードとして、ロボット(この一例において、ロボット20、ロボット20aのそれぞれ)に予め決められた動作を行わせる第1モード、ロボットの動作のオンライン教示を行う第2モード、ロボットの動作の直接教示を行う第3モード、力検出部が検出した外力に応じて第1可動部を動かす第4モードを有する。これにより、ロボット制御装置は、第4モードにおいて、エンドエフェクターの可動部を容易に動作させることができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット制御装置30、教示装置40)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。