(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】制御装置、制御方法、ロボットシステム、物品の製造方法、表示装置、プログラム及び記録媒体
(51)【国際特許分類】
B25J 9/22 20060101AFI20240508BHJP
G05B 19/42 20060101ALI20240508BHJP
【FI】
B25J9/22 Z
G05B19/42 D
(21)【出願番号】P 2018227346
(22)【出願日】2018-12-04
【審査請求日】2021-12-02
(31)【優先権主張番号】P 2018023368
(32)【優先日】2018-02-13
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】▲高▼橋 正和
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開平2-59287(JP,A)
【文献】特開平11-231925(JP,A)
【文献】特開2017-124455(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムの制御装置であって、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、
前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、
前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定する、
ことを特徴とする制御装置。
【請求項2】
前記ロボットアームは、前記ユーザによって操作可能なハンドリング部を備え、
前記ハンドリング部を操作することで前記ダイレクトティーチングを実行可能である、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記ロボットシステムは、前記ハンドリング部に作用する力に関する情報を第3情報として取得する第3センサを備え、
前記制御装置は、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第3センサからの前記第3情報を取得し、
前記第1情報と前記第3情報とに基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における、前記ユーザによって前記ハンドリング部に与えられている操作力に関する情報を取得する、
ことを特徴とする請求項2に記載の制御装置。
【請求項4】
前記制御装置は、
前記操作力に関する情報に基づいて、前記第2区間において前記ロボットアームを力制御するための力制御データを取得する、
ことを特徴とする請求項3に記載の制御装置。
【請求項5】
前記制御装置は、
前記第2情報に基づいて、前記第1区間において前記ロボットアームを位置制御するための位置制御データを取得する、
ことを特徴とする請求項4に記載の制御装置。
【請求項6】
前記制御装置は、
前記第1区間では前記位置制御データと前記第2センサとに基づいて前記ロボットアームを位置制御し、前記第2区間では前記位置制御データと前記力制御データと前記第1センサおよびまたは前記第3センサとに基づいて前記ロボットアームを力制御する、
ことを特徴とする請求項5に記載の制御装置。
【請求項7】
前記制御装置は、
前記第2情報の2点間を所定の補間方法で補間することで前記位置制御データを取得する、
ことを特徴とする請求項5または6に記載の制御装置。
【請求項8】
前記制御装置は、
前記第1区間における前記第2情報
に基づく前記所定部位の軌道を単純化して前記位置制御データを取得する、
ことを特徴とする請求項5または6に記載の制御装置。
【請求項9】
前記制御装置は、
前記第2区間における前記操作力に関する情報を周波数分析することで、前記第2区間を複数区間に分割する、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項10】
前記制御装置は、
前記周波数分析によって取得される周波数の変化点の位置を、前記複数区間を区切る位置とする、
ことを特徴とする請求項9に記載の制御装置。
【請求項11】
前記制御装置は、
前記第2区間における前記操作力に関する情報の変化の大きさに基づき、前記第2区間を複数区間に分割する、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項12】
前記制御装置は、
前記複数区間において、前記変化の大きさが閾値を下回り、かつ所定回数連続している区間における前記操作力に関する情報を補正する、
ことを特徴とする請求項11に記載の制御装置。
【請求項13】
前記制御装置は、
前記第2区間において、前記操作力に関する情報の方向が反転し前記反転が連続している区間における前記操作力に関する情報は補正しない、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項14】
前記制御装置は、
前記第2区間において、前記操作力に関する情報の正負が反転している区間における前記操作力に関する情報は補正しない、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項15】
前記制御装置は、
前記第2区間において、前記操作力に関する情報の正負は反転していないが、終点の前記操作力に関する情報が所定範囲内である区間における前記操作力に関する情報は補正しない、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項16】
前記制御装置は、
前記第2区間において、前記操作力に関する情報の正負は反転していないが、終点の前記操作力に関する情報が所定範囲外である区間における前記操作力に関する情報は補正する、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項17】
前記制御装置は、
前記第2区間において、前記操作力に関する情報が継続的に変動しているが変化が無いまたは変化の回数が所定回数以下となっている区間は、探り動作区間と判定する、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項18】
前記制御装置は、
前記接触力に関する情報がゼロと判定される区間を前記第1区間とし、前記接触力に関する情報がゼロ以外と判定される区間を前記第2区間とする、
ことを特徴とする請求項1から17のいずれか1項に記載の制御装置。
【請求項19】
前記制御装置は、
前記操作力に関する情報を平滑化し、この平滑化された操作力に関する情報に基づいて前記力制御データを取得する、
ことを特徴とする請求項4から8のいずれか1項に記載の制御装置。
【請求項20】
前記制御装置は、
前記第2区間における前記操作力に関する情報を、前記操作力に関する情報の変動に基づき、補正して前記力制御データとして取得する
区間の情報と、前記補正を行わずに前記力制御データとして取得する
区間の情報と、に分ける、
ことを特徴とする請求項4から8のいずれか1項に記載の制御装置。
【請求項21】
前記制御装置は、
前記第1情報、前記第2情報、前記第3情報に基づいて、前記ロボットアームの教示時のやり直し動作の有無を判定し、前記やり直し動作が有ると判定した場合には、失敗時の動作については、再現しないように前記力制御データを取得する、
ことを特徴とする請求項4から8のいずれか1項に記載の制御装置。
【請求項22】
前記第1センサは、前記ハンドリング部と、前記ロボットアームに支持されるエンドエフェクタとの間に設けられた力センサである、
ことを特徴とする請求項2に記載の制御装置。
【請求項23】
前記第3センサは、前記ロボットアームと前記ハンドリング部との間に設けられた力センサである、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項24】
前記第1センサは、前記第3センサよりも、前記ロボットアームの先端部寄りに配設されている、
ことを特徴とする請求項3から8のいずれか1項に記載の制御装置。
【請求項25】
前記第1区間および前記第2区間に対応した表示情報を表示部に出力する出力手段を備えた、
ことを特徴とする請求項1から24のいずれか1項に記載の制御装置。
【請求項26】
前記出力手段は、前記表示部に対して前記表示情報を、前記第1区間と前記第2区間とを識別可能な時系列情報として表示する、
ことを特徴とする請求項25に記載の制御装置。
【請求項27】
前記ユーザからの操作を受け付けて、前記表示部に表示されている表示情報に対する変更操作を可能に制御する操作部と、
前記変更操作に基づき前記第1区間または前記第2区間を更新する更新手段と、を備えた、
ことを特徴とする請求項25または26に記載の制御装置。
【請求項28】
前記操作部は、前記第1区間または前記第2区間を独立して選択可能であり、選択した区間ごとに変更操作が可能となっている、
ことを特徴とする請求項27に記載の制御装置。
【請求項29】
前記操作部は、前記第1区間をさらに細分化した第1細区間または前記第2区間をさらに細分化した第2細区間をそれぞれ独立して選択可能であり、選択した区間ごとに変更操作が可能となっている、
ことを特徴とする請求項27または28に記載の制御装置。
【請求項30】
前記操作部は、前記表示部に表示される期間の時間幅を変更可能に構成されている、
ことを特徴とする請求項27から29のいずれか1項に記載の制御装置。
【請求項31】
前記操作部は、前記ダイレクトティーチングにより前記所定部位が移動している際に取得するべき情報を選択可能な選択部を有する、
ことを特徴とする請求項27から30のいずれか1項に記載の制御装置。
【請求項32】
前記表示部はタッチパネルを備えており、前記変更操作は、前記タッチパネルの操作に基づき実行可能となっている、
ことを特徴とする請求項27から31のいずれか1項に記載の制御装置。
【請求項33】
前記第1区間は前記ダイレクトティーチングにより教示した前記所定部位の動作を実行する際に前記位置制御を実行する区間であり、前記第2区間は前記ダイレクトティーチングにより教示した前記所定部位の動作を実行する際に前記力制御を実行する区間である、
ことを特徴とする請求項1から32のいずれか1項に記載の制御装置。
【請求項34】
ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、制御装置と、を備えるロボットシステムであって、
前記制御装置が、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、
前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、
前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定する、
ことを特徴とするロボットシステム。
【請求項35】
ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムの制御方法であって、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、
前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、
前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定する、
ことを特徴とする制御方法。
【請求項36】
請求項34に記載のロボットシステムを用いて物品の製造を行うことを特徴とする物品の製造方法。
【請求項37】
ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムに関する情報を表示する表示装置であって、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、
前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、
前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において設定される、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を表示部に表示する、
ことを特徴とする表示装置。
【請求項38】
ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムに関する情報を表示する表示装置の制御方法であって、
前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、
前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、
前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において設定される、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を表示部に表示する、
ことを特徴とする制御方法。
【請求項39】
請求項35または38に記載の制御方法をコンピュータに実行させるプログラム。
【請求項40】
請求項39に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教示者がロボットアームを手動で操作してロボットアームの動作を教示するダイレクト教示が可能な制御装置、制御方法、ロボットシステム、物品の製造方法、表示装置、プログラム及び記録媒体に関する。
【背景技術】
【0002】
従来、ロボットアームの動作を教示する際には、教示ペンダントのような操作装置を用いてエンドエフェクタなどを教示位置へ移動させる操作を行い、教示者が目視で位置を確認しつつ、教示位置を記憶させていた。その際、教示者が教示ペンダントに座標を入力するか教示ペンダントを操作して、ロボットアームを微小移動させる作業を繰り返す必要があり、作業が煩雑であったため、教示を効率的に行うことができなかった。
【0003】
そこで、教示における操作性を改善する方法の一つとしてダイレクト教示という技術がある。ダイレクト教示は、教示者がロボットの所定の箇所を掴んでロボットアームを手動で操作し、そのときのロボットアームの先端の位置姿勢データを取得し、そのデータを基にロボットアームの動作指令値を生成し、教示時の組立動作を再現するものである。ダイレクト教示では、ロボットアームを手動で導くだけで直感的に教示できるため、煩雑な作業なく簡単にロボットアームを動作させる教示データを生成することができる。教示者がロボットアームを手動で操作する場合、ロボット制御装置は、一般的にコンプライアンス制御またはインピーダンス制御と呼ばれる制御を行う。例えばロボット制御装置は、ロボットアームの先端に加わる力がゼロになるようにロボットアームを制御することで教示者が力を掛けた方向にロボットアームを動作させる。
【0004】
特許文献1には、教示者がロボットアームを手動で操作した際に、位置姿勢データとともに力トルクデータの時系列データを取得し、接触力に関する力教示データを生成するものが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されている方法は、接触力に関する力教示データを生成するものである。そのため、特許文献1に記載された力教示データに従ってロボットアームを再生動作させても、組み付け作業などの精密な作業が必要な箇所において、教示者が指示したようにロボットアームが動作するとは限らなかった。
【0007】
本発明は、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することを目的とする。
【課題を解決するための手段】
【0008】
本発明の制御装置は、ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムの制御装置であって、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定することを特徴とする。
【0009】
また、本発明のロボットシステムは、ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、制御装置と、を備えるロボットシステムであって、前記制御装置が、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定することを特徴とする。
また、本発明の制御方法は、ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムの制御方法であって、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を設定することを特徴とする。
また、本発明の物品の製造方法は、上記のロボットシステムを用いて物品の製造を行うことを特徴とする。
また、本発明の表示装置は、ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムに関する情報を表示する表示装置であって、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において設定される、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を表示部に表示することを特徴とする。
また、本発明の制御方法は、ユーザによってダイレクトティーチング可能なロボットアームと、前記ロボットアームの所定部位に作用する力に関する情報を第1情報として取得する第1センサと、前記所定部位の位置に関する情報を第2情報として取得する第2センサと、を備えるロボットシステムに関する情報を表示する表示装置の制御方法であって、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第1センサからの前記第1情報と前記第2センサからの前記第2情報とを取得し、前記第1情報に基づき、前記所定部位と周辺物との接触によって生じる接触力に関する情報を取得し、前記接触力に関する情報に基づき、前記ダイレクトティーチングにより前記所定部位が移動している間における前記第2情報において設定される、前記ロボットアームを位置制御する第1区間と、前記ロボットアームを力制御する第2区間と、を表示部に表示することを特徴とする。
【発明の効果】
【0010】
本発明によれば、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態に係るロボット装置の説明図である。
【
図2】第1実施形態に係るロボット装置の制御系を示すブロック図である。
【
図3】第1実施形態に係るセンサを用いて測定される力の説明図である。
【
図4】
図2に示す制御システムの制御ブロック図である。
【
図5】第1実施形態に係る操作力及び接触力の時系列データを示す説明図である。
【
図6】第1実施形態に係る第3区間の説明図である。
【
図7】(a)~(c)は、第1実施形態に係る第3区間における操作力のデータの説明図である。
【
図8】第1実施形態に係るロボットでコネクタ接続する教示においてリトライ動作を行っている場合を示す説明図である。
【
図10】第1実施形態に係るロボット教示方法の一例を示すフローチャートである。
【
図11】
図10の力指令値生成処理を示すフローチャートである。
【
図12】(a)~(d)は、第1実施形態に係るロボットアームの探り動作を教示する説明図である。
【
図13】第1実施形態に係る軌道を補完する具体例を示す説明図である。
【
図14】第2実施形態に係るロボット装置の説明図である。
【
図15】第3実施形態に係るロボット装置の説明図である。
【
図16】第4実施形態に係るロボット装置の制御系を示すブロック図である。
【
図18】(a)操作装置の表示部を示す模式図であり、(b)操作装置の操作部を示す模式図である。
【
図19】第5実施形態に係る操作装置の表示部を示す模式図である。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るロボット装置の説明図である。
図1に示すロボットシステムとしてのロボット装置100は、ロボット200と、ロボット200を制御する制御装置の一例である制御システム300と、を備える。制御システム300は、ロボット制御装置350及びサーボ制御装置360を有する。
【0013】
ロボット200は、垂直多関節の産業用ロボットである。ロボット200は、ロボットアーム201と、エンドエフェクタの一例であるハンド202と、ハンドリング部203とを有する。ロボットアーム201の先端には、ハンドリング部203が取り付けられている。ハンド202は、ハンドリング部203を介してロボットアーム201の先端に支持されている。つまり、ハンドリング部203は、ロボットアーム201の先端とハンド202との間に設けられている。ハンドリング部203は、ロボットアーム201の動作をダイレクト教示する時に教示者に操作される部位であり、教示者が掴んで操作することができるような形状となっている。
【0014】
ロボットアーム201は、直列に連結された複数、例えば7つのリンク210~216を有し、例えば作業対象物が載置されるベースBに基端(固定端)が固定されている。本実施形態では、7つのリンク210~216が6つの関節J1~J6で連結されている。なお、リンクの数は、7つに限定するものではない。各関節J1~J6は、直動関節、旋回関節又は回転関節(捩り関節ともいう)のいずれかである。本実施形態では、関節J2,J3,J5が旋回関節であり、関節J1,J4,J6が回転関節である。リンク210は、ロボットアーム201の基端である。リンク216は、ロボットアーム201の先端(自由端)である。ハンド202は、複数のフィンガ220を有し、複数のフィンガ220を動作させることで、ワーク等を把持可能となっている。
【0015】
ハンド202とハンドリング部203との間には、第1センサの一例である力覚センサ251が配置されている。ハンド202は力覚センサ251に支持され、力覚センサ251はハンドリング部203に支持されている。力覚センサ251は、ハンド202に内蔵されている。なお、本実施形態では、力覚センサ251は、ハンド202に内蔵されているが、ハンド202とハンドリング部203との間に配置されていればよく、ハンドリング部203に内蔵されていてもよい。力覚センサ251は、ハンド202に作用する6軸の力を測定するのに用いるセンサである。6軸の力とは、互いに直交する3軸方向の並進力と、各軸まわりの回転力、即ちモーメントとである。ハンド202に作用する力は、ハンド202又はハンドに把持された把持物が、作業対象物に接触した際にかかる反力(以下「接触力」という)である。接触力は、作業対象物に対してハンド202が印加した力でもある。
【0016】
力覚センサ251は、自身に作用した力、即ち接触力に応じた信号を所定の周期で制御システム300のロボット制御装置350に出力する。ロボット制御装置350は、力覚センサ251から得られた信号に基づいて、ハンド202に作用する力を求める処理を行う。このように、制御システム300、即ちロボット制御装置350は、力覚センサ251を用いてハンド202に作用する力を測定することができる。即ち、力覚センサ251は、ロボット200の先端部に作用する第1力データを取得するように構成されている。なお、上述したように、本実施の形態では、エンドエフェクタを含めてロボットと呼んでいる。このため、エンドエフェクタがついていれば、エンドエフェクタの先端がロボットの先端部となる。
【0017】
ロボットアーム201の各関節J1~J6には、駆動部230が配置されている。各駆動部230は、対応する関節を回転駆動するモータ231を有する。各関節J1~J6に配置されたモータ231が動作することにより、ロボットアーム201の姿勢が変更される。ロボットアーム201の姿勢を変更することにより、ロボットアーム201の先端に支持されたハンド202を、任意の位置姿勢に変更することができる。以下、ロボットアーム201の先端の「位置姿勢」を、単に「位置」ともいう。
【0018】
また、各駆動部230は、トルクセンサ252を有する。即ち、ロボットアーム201の関節J1~J6には、第2センサの一例である複数のトルクセンサ252が配置されている。各トルクセンサ252は、各関節J1~J6に作用するトルク、即ち各関節J1~J6で連結された一対のリンクの間に作用するトルクに応じた信号を、所定の周期でロボット制御装置350に出力する。ロボット制御装置350は、複数のトルクセンサ252から得られた信号に基づき、ロボットアーム201の先端、即ちリンク216に取り付けられたハンドリング部203に作用する力を求める処理を行う。このように、ロボット制御装置350は、複数のトルクセンサ252を用いてロボットアーム201の先端、即ちハンドリング部203に作用する力を測定することができる。即ち、トルクセンサ252は、ハンドリング部203に作用する第2力データF2を取得するように構成されている。このハンドリング部203に作用する力には、教示者がハンドリング部203を掴んで操作するときにハンドリング部203に印加される操作力のほか、接触力が含まれる。なお、第1センサとしての力覚センサ251は、上述した第2センサとしてのトルクセンサ252よりもロボットの先端部寄り(エンドエフェクタ寄り)に配設されている。
【0019】
また、各駆動部230は、エンコーダ253を有する。即ち、ロボットアーム201の関節J1~J6には、第3センサの一例である複数のエンコーダ253が配置されている。各エンコーダ253は、ロータリエンコーダであり、モータ231の回転軸の回転角度に応じた信号を所定の周期でロボット制御装置350及びサーボ制御装置360に出力する。ロボット制御装置350は、複数のエンコーダ253から得られた信号に基づき、ロボットアーム201の先端の位置を求める処理を行う。このように、ロボット制御装置350は、複数のエンコーダ253を用いてロボットアーム201の先端の位置を測定することができる。即ち、エンコーダ253は、ロボットアーム201の先端部の位置姿勢データを取得するように構成されている。
【0020】
図2は、第1実施形態に係るロボット装置100の制御系を示すブロック図である。ロボット制御装置350は、コンピュータで構成されている。ロボット制御装置350は、処理部の一例であるCPU(Central Processing Unit)301を備えている。また、ロボット制御装置350は、ROM(Read Only Memory)302、RAM(Random Access Memory)303、及びHDD(Hard Disk Drive)304を備えている。また、ロボット制御装置350は、記録ディスクドライブ305、及び入出力インタフェースであるI/O311~314を備えている。
【0021】
CPU301、ROM302、RAM303、HDD304、記録ディスクドライブ305、及びI/O311~314は、互いに通信可能にバス310で接続されている。I/O311には、サーボ制御装置360が接続され、I/O312には、エンコーダ253が接続されている。また、I/O313には、トルクセンサ252が接続され、I/O314には、力覚センサ251が接続されている。
【0022】
サーボ制御装置360には、各関節J1~J6に対応するモータ231及びエンコーダ253が接続されている。なお、
図2には、モータ231、エンコーダ253及びトルクセンサ252は、1つの関節分のみ図示しているが、第1実施形態では、6つの関節が存在する。したがって、
図2において図示は省略するが、モータ231、エンコーダ253及びトルクセンサ252は、それぞれ6つ存在する。
【0023】
CPU301は、ロボットアーム201の各関節J1~J6を駆動するモータ231を、サーボ制御装置360を介して制御することで、ロボットアーム201の動作を制御する。記憶部の一例であるHDD304は、制御及び演算用のプログラム325、及び教示データ320が記憶される。記録ディスクドライブ305は、記録ディスク326に記録された各種データやプログラム等を読み出すことができる。プログラム325は、CPU301に、後述する各種演算や各種制御を行わせるプログラムである。
【0024】
教示データ320は、ロボットアーム201を教示したときにCPU301によって生成され、例えば1[ms]などの所定の周期で指令する動作指令値の時系列データである。CPU301は、ロボット制御装置350に設けられた不図示のスイッチが人によって操作されることで、教示モード及び再生動作モードのいずれかに設定される。
【0025】
教示モードに設定された場合、CPU301は、ロボットアーム201をインピーダンス制御することで、ロボットアーム201に作用した力の方向にならって動作するようロボットアーム201を制御する。そして、CPU301は、教示データ320を生成してHDD304に記憶させる。再生動作モードに設定された場合、CPU301は、HDD304に記憶されている教示データ320に従ってロボットアーム201を動作させる。教示データ320は、軌道データともいう。
【0026】
教示データ320に含まれている動作指令値は、位置指令値及び力指令値のいずれかである。位置指令値は、位置を示す3つのパラメータと、姿勢を示す3つのパラメータとで構成される。力指令値は、並進力を示す3つのパラメータと、モーメントを示す3つのパラメータとで構成される。
【0027】
本実施形態では、位置指令値の時系列データが位置教示データ321、力指令値の時系列データが力教示データ322である。CPU301は、位置教示データ321に基づいてロボットアーム201を位置姿勢制御し、力教示データ322に基づいてロボットアーム201を力制御する。以下、「位置姿勢制御」を「位置制御」という。なお、位置教示データ321が位置指令値の代わりに、各関節J1~J6の目標角度を示す角度指令値、又は各モータ231の目標角度を示す角度指令値の時系列データで構成されていてもよい。
【0028】
位置制御におけるフィードバック制御の一例について説明する。CPU301は、教示データ320の位置指令値を、各関節J1~J6の角度の目標値を示す角度指令値に変換する。更に、CPU301は、各関節J1~J6の角度指令値から、各関節J1~J6に配置したモータ231の回転角度の目標値を示す角度指令値に変換する。CPU301は、各関節J1~J6のモータ231に対する角度指令値を、所定の周期でサーボ制御装置360に出力する。サーボ制御装置360は、エンコーダ253により検出される角度が角度指令値に近づくようモータ231に供給する電流を制御する。以上の位置制御により、ロボットアーム201の先端の位置が位置指令値に近づけられる。
【0029】
力制御におけるフィードバック制御の一例について説明する。CPU301は、ロボットアーム201の先端に発生する力が教示データ320の力指令値となるよう各モータ231に対するトルク指令値を算出し、算出したトルク指令値をサーボ制御装置360に出力する。サーボ制御装置360は、各エンコーダ253の角度値に基づき、各関節に発生させるトルクが各トルク指令値となるよう、各モータ231に供給する電流を制御する。各モータ231は、通電されることにより駆動力を発生し、これにより各関節にトルクを発生させることで、ロボットアーム201の先端に力を発生させる。各エンコーダ253は、各モータ231の角度値を示す信号をCPU301へ出力する。各トルクセンサ252は、各トルク値を示す信号をCPU301へ出力する。これにより、各エンコーダ253の角度値と各トルクセンサ252のトルク値は、CPU301にフィードバックされる。CPU301は、ロボットモデル及び各エンコーダ253の角度値に基づいて各関節J1~J6の角度値を算出する。CPU301は、ロボットモデル及び各関節J1~J6の角度値に基づいてロボットアーム201の先端の位置を算出する。CPU301は、ロボットモデル、各関節の角度値及び各関節のトルク値に基づき、ロボットアーム201の先端に発生する力を算出する。以上の力制御により、ロボットアーム201の先端に発生する力が力指令値に近づけられる。
【0030】
CPU301がサーボ制御装置360に出力する角度指令値及びトルク指令値が駆動指令値である。CPU301は、教示データ320からロボットアーム201の各関節J1~J6のモータ231に対応する駆動指令値を生成してサーボ制御装置360に出力し、フィードバック制御によりロボットアーム201の位置制御や力制御を行うことができる。
【0031】
図3は、力覚センサ251を用いて測定される力F1と、トルクセンサ252を用いて測定される力F2との関係を説明するための図である。教示者がハンドリング部203を操作する操作力をFとし、ハンド202又はハンド202に支持された支持物が作業対象物に接触するときの接触力をfとする。なお、
図3に示すように、複数のトルクセンサ252をまとまった1つのセンサとして取り扱う。
【0032】
図3に示すように、力覚センサ251とトルクセンサ252とが、ハンドリング部203を示す操作点Pを挟んで配置されている。力覚センサ251を用いて測定される力F1は、作業対象物との接触力fそのものである。これに対し、トルクセンサ252を用いて測定される力F2は、接触力fと、操作力Fとの合力(f+F)である。つまり、ハンドリング部203には、教示者が印加する操作力Fに加えて接触力fも作用する。
【0033】
ロボット制御装置350は、接触力fおよび操作力Fに基づいて、各関節J1~J6のモータ231に対応する駆動指令値を変化させる力フィードバック制御を行うことができる。具体的には、ロボット制御装置350は、接触力fが所定力となるように各関節J1~J6のモータ231に対応する駆動指令値を変化させることで、所定力で把持物を作業対象物に押し付ける制御を行うことができる。また、ロボット制御装置350は、操作力Fの情報と仮想の粘性及び慣性によるインピーダンスモデルに基づき、各関節J1~J6のモータ231に対応する駆動指令値を変化させる。これにより、人がハンドリング部203に加えた操作力Fに基づいてロボットアーム201を動かすことが可能となる。即ち、教示時においては、ロボット制御装置350は、ロボットアーム201に作用した操作力Fの方向にならって動作するようロボットアーム201をインピーダンス制御する。
【0034】
以下、ロボットアーム201をダイレクト教示する場合について説明する。
図4は、
図2に示す制御システム300の制御ブロック図である。
図2に示すCPU301は、プログラム325を実行することにより、
図4に示す各部331~344として機能する。
図2に示すHDD304は、
図4に示す記憶部346として機能する。ロボットモデル347は、ロボットアーム201の形状や寸法などの情報(データ)であり、HDD304に予め記憶されている。ハンド情報348は、ハンド202の形状や寸法などの情報(データ)であり、HDD304に予め記憶されている。
【0035】
ダイレクト教示を行う場合、ロボット制御装置350は、ロボットアーム201に作用した操作力Fの方向にならって動作するようロボットアーム201をインピーダンス制御する。ダイレクト教示としては、ロボットアーム201を手動で操作したときに、教示者が要所で決定ボタンを押して教示点を決定し、これら教示点を結んで教示データを生成する方法もある。これに対し、本実施形態のダイレクト教示では、教示者がロボットアーム201を操作したときの一連の動作データを逐一取得し、一連の時系列データを取得後、このデータに基づいて教示データ320を生成する。これにより、ロボットアーム201を教示データ320に従って再生動作させる自動運転においては、教示者が教示したときのロボットアーム201の動作を再現する再現性が向上する。
【0036】
以下、教示データ320を生成する処理について説明する。ロボット制御装置350は、教示時、即ち教示モードに設定されたときに、所定の周期、例えば1[ms]の周期で、力覚センサ251、トルクセンサ252及びエンコーダ253から出力された信号を受け取る。第1測定部331は、力覚センサ251からの信号に基づき、第1力である力F1を測定、即ち力F1のデータを算出して、力F1のデータを記憶部346に記憶させる。第2測定部332は、複数のトルクセンサ252からの信号に基づき、第2力である力F2を測定、即ち力F2のデータを算出して、力F2のデータを記憶部346に記憶させる。第3測定部333は、複数のエンコーダ253それぞれからの信号に基づき、複数のモータ231それぞれの回転角度を求め、複数のモータ231それぞれの回転角度のデータを記憶部346に記憶させる。記憶部346に記憶させる力F1のデータ、力F2のデータ、回転角度のデータは、例えば1[ms]毎の時系列データである。各データは、時間軸で互いに対応するように同期させてある。
【0037】
姿勢算出部334は、ロボットモデル347及び記憶部346に記憶された各エンコーダ253の回転角度のデータに基づき、ロボットアーム201の姿勢を算出する。ロボットアーム201の姿勢とは、ロボットアーム201の各関節J1~J6の角度である。手先算出部335は、ロボットアーム201の姿勢のデータ及びハンド情報348に基づき、ロボットアーム201の先端、即ちハンドリング部203の座標を算出する。即ち、姿勢算出部334及び手先算出部335により、ロボットアーム201の先端の位置を時系列で測定したことになる。なお、ロボットアーム201の先端の位置の測定は、エンコーダ253を用いて行う場合に限定するものではない。例えば、ロボットアーム201の周囲に配置されたビジョンセンサを用いてロボットアーム201の先端の位置を測定するようにしてもよい。
【0038】
接触力算出部336は、力覚センサ251を用いて測定した力F1から接触力fを算出する。本実施形態では、力覚センサ251を用いて測定した力F1が接触力fである。操作力算出部337は、力覚センサ251を用いて測定された力F1のデータと、トルクセンサ252を用いて測定された力F2のデータとの差分値(F2-F1)を算出する。本実施形態では、差分値(F2-F1)が操作力Fのデータである。このように、差分値(F2-F1)により操作力Fのデータのみを抽出することができる。
【0039】
設定部338は、ロボットアーム201の位置の測定結果に基づいて、時系列データの全区間を、再生動作時にロボットアーム201を位置制御する第1区間と、再生動作時にロボットアーム201を力制御する第2区間とに区分けする。本実施形態では、設定部338は、時系列データの全区間に対し、算出した接触力fの大きさがゼロとなるかどうかで区分けする。具体的には、設定部338は、接触力fの大きさがゼロの区間を第1区間とし、接触力fの大きさがゼロ以外の区間を第2区間とする。なお、本実施の形態において、上記第1区間は、上述した第3センサ(本実施の形態では、エンコーダ253)の位置姿勢のデータを再現するようにロボットアーム201を位置姿勢制御する第1期間ということもできる。また、第2区間は、上述した第1力データ及び第2力データを再現するようにロボットアーム201を力制御する第2期間ということもできる。これら第1及び第2期間は、上述したように第1力データ及び第2力データの解析結果に基づいて、設定部338により設定される。なお、本実施の形態において「再現」とは、完全に同一のロボットの動きを実行することに留まらず、教示されたロボットの動作に基づいた動作を実行するのであれば、例え、教示されたロボットの動作とは異なっていても上記「再現」の概念の範囲に含まれる。即ち、第1期間の位置制御及び第2期間の力制御で、ロボットを適切に動作させることが出来れば、その動作は教示された動作から異なっていても良い。
【0040】
図5は、操作力及び接触力の時系列データを示す説明図である。
図5には、ハンド202に第1部品の一例であるコネクタW1を把持させ、第2部品の一例であるコネクタW2にコネクタW1を組み付ける組付動作について例示している。また、
図5には、XYZ軸の直交座標系を基準とする操作力及び接触力を図示している。なお、説明を簡略にするため、操作力については、XYZ方向の3つの並進力である操作力Fx,Fy,Fzのみとする。同様に、接触力については、XYZ方向の3つの並進力である接触力fx,fy,fzのみとする。設定部338は、時系列データを測定したときの全区間を、3つの接触力fx,fy,fzの大きさが共にゼロとなる第1区間である区間S1と、3つの接触力fx,fy,fzの大きさがゼロ以外となる第2区間である区間S2とに区分けする。つまり、接触力がない場合は区間S1、接触力がある場合は区間S2とする。
【0041】
区間S1においては、接触力が発生していない、即ち3つの接触力fx,fy,fzがゼロである。具体的には、コネクタW1,W2同士が接触する前の状態である。操作力Fx,Fy,Fzは、人がハンドリング部203に加える力に応じて変動する。コネクタW1,W2の組付において重要なのは、コネクタW1,W2同士が接触してからの挙動である。コネクタW1,W2同士が接触する前の動作軌跡や力変動は重要ではない。本実施形態では、接触力fと操作力Fとに分けることができる。そのため、コネクタW1,W2同士が接触していない区間S1と、コネクタW1,W2同士が接触する区間S2とに区分けすることが可能である。
【0042】
コネクタW1,W2同士が接触する前は、上述したように接触力が発生していないため、ロボットアーム201を力制御する必要がない。よって、
図4に示す位置教示データ生成部339は、区間S1において、ロボットアーム201の先端の位置のデータに基づいて、位置教示データ321を生成する。本実施形態では、位置教示データ生成部339は、区間S1の始点における位置のデータと、終点における位置のデータとの2点間を、所定の補間方法、例えば直線補間や関節補間により補間して、位置教示データ321を生成する。これにより、途中の軌道が単純化され、ロボットアーム201の動作をより高速化することができる。なお、位置教示データ321としては、測定した時系列の位置のデータそのものとしてもよい。このような場合であっても、力制御する場合に比べ、ロボットアーム201の動作を高速化することができる。また、本実施形態では、ロボット制御装置350が自動で区間S1,S2を区分けするため、教示者の手間が減る。なお、補間計算する始点及び終点の2点を、区間S1の始点及び終点とするのが好ましいが、これに限定するものではなく、区間S1の始点前後の点と、区間S1の終点前後の点としてもよい。
【0043】
区間S2においては、接触力が発生している、即ち3つの並進力fx,fy,fzのいずれかがゼロではないため、ロボットアーム201を力制御する必要がある。
図4に示す力教示データ生成部342は、区間S2において、再生動作時に差分値(F2-F1)、即ち操作力Fに応じた力(第3力)でロボットアーム201が動作するよう力教示データ322を生成する。
【0044】
教示データ生成部343は、生成した位置教示データ321と力教示データ322とを時系列につないで、教示データ320を生成し、生成された教示データ320を格納する記憶部であるHDD304に記憶させる。本実施の形態において、教示データ生成部343は、位置教示データ生成部339、力教示データ生成部342及び後述する補正部340や、照合部341などと共に、上述した第1及び第2期間を有する教示データを生成する生成手段を構成している。
【0045】
動作指令部344は、再生動作モードに設定されたとき、HDD304に格納された教示データ320を読み出して、動作指令値を生成し、サーボ制御装置360へ出力する。力教示データ322に従ってロボットアーム201を再生動作させることで、各関節J1~J6のモータ231には、ロボットアーム201の先端に操作力Fに相当する力が発生するようなトルクを発生させる。これにより、教示者(熟練者)がロボットアーム201を操作したときと同様の動作をロボットアーム201に再現させることができる。即ち、ロボットアーム201の一連の動作のうち、精密な作業が必要な箇所において、教示時のロボットアーム201の動作を正確に再現することができる。即ち、教示時のロボットアームの動作に基づいて所望の態様でロボットアームを制御することができる。
【0046】
操作力Fのデータ、即ち差分値(F2-F1)を補正せずにそのまま力教示データ322としてもよいが、一連の時系列データの中には、教示者の手振れや、リトライ動作をした場合にその前の動作などの無駄な動作も含まれている。そこで、補正部340及び照合部341は、無駄な動作を除去すべく、操作力Fのデータを補正する。力教示データ生成部342は、操作力Fのデータが補正された場合は、補正された操作力Fのデータから力教示データ322に含まれる力指令値を生成する。
【0047】
以下、力教示データ322、即ち力指令値の生成方法について具体的に説明する。補正部340は、力制御を行う区間S2を、複数の第3区間である複数の区間S3-1,S3-2,S3-3に区分けする。
【0048】
区間S3-1においては、コネクタW1,W2同士が接触した直後の状態を表わしている。区間S3-1では、接触力fx,fy,fzが急峻に変化する。その後、y方向の操作力Fyが顕著に変化しており、人がy方向にロボットアーム201を動かそうとしている。操作力Fyについてさらに着目すると、大部分は+y方向に力が掛かっているが、一時的に-y方向に力が掛かっている。教示者は、一度動かした+y方向に対して意図的に-y方向に戻している。区間S3-1の終了付近では、操作力Fyが安定しており、+y方向に一定の力が掛かった状態である。安定している場合は組み付けに必要な力を教示者が教示時に発見していることが多い。
【0049】
区間S3-2においては、x方向の操作力Fx及び接触力fxが急峻に変化している。操作力Fxの方向が高頻度で変わっており、教示者が振動的にハンドリング部203に操作力を加えていることが分かる。コネクタW1を振動させながら組み付けを行うと、コネクタW1,W2の組み付けがし易くなることがあり、この場合は教示者が意図して振動的にハンドリング部203を操作している。記録された力のデータにおいて、操作力の方向が反転し、それが連続している場合は意図した動作と判断し、その間の操作力データの除外などは行わずに力教示データ322を生成する。これによって教示者が意図した動作を再生時に反映することができる。仮に、この状態の操作力を移動平均などで単純に補正してしまうと、操作力の変化がないデータとなってしまい、教示者が意図した動作を再現することができなくなる。なお、上記の説明では、操作力の方向が反転し、それが連続していることで判断しているが、操作力の反転する周波数の高低で判断してもよい。数kHz以上の応答は人の操作によるものではないため、人が意図して振動的な動作を行う場合の周波数(数Hz程度)の前後に閾値を設けて補正の有無を区分けしてもよい。
【0050】
区間S3-3においては、コネクタW1,W2同士の突き当て完了、即ち組み付けが完了しており、接触力の急峻な変化後に操作力がなくなっている。操作力がなくっているので教示動作が終了していることが分かる。
【0051】
操作力Fのデータ、接触力fのデータ、及び位置のデータは、連続する区分けのないデータ群である。区間S2を複数の区間S3-1,S3-2,S3-3に区分けする方法について具体的に説明する。
【0052】
人は、精密な作業ほど作業速度が低くなる傾向にある。そのため、ロボットアーム201を高速に動作させている区間は、緻密さを求めていない動作や制御的な揺れだと考えられる。そこで、本実施形態では、補正部340は、区間S2における操作力Fのデータを周波数分析し、その分析した結果に基づいて、区間S2を複数の区間S3-1,S3-2,S3-3に区分けする。具体例には、CPU301は、操作力Fのデータを周波数分析し、周波数の変化点を抽出し、周波数の変化点を区間を区切る箇所とする。これにより、教示者の動作の変化点を抽出する、即ち教示者の動作の変化点で区間S2を複数の区間に区分けすることが可能である。なお、操作力Fx、Fy、Fzの主となる力成分の変化や、それぞれの力の方向の正負の変化などからも人の動作の変化点を抽出することができる。例えば、操作力がx方向にのみ力が掛かっている状態からy方向に力が掛かっている状態に変化すれば、何かしら教示者が意図して動作を変更したことが分かる。
【0053】
区間S2を区分けした複数の第3区間のうちの一つを区間S3とする。
図6は、第3区間である区間S3の説明図である。CPU301は、
図6に示すように、区間S3をさらに複数の細区間SAに区分けする。各細区間SAは、同じ時間間隔、本実施形態では、データのサンプリング周期、例えば1[ms]とする。
【0054】
補正部340は、複数の細区間SAそれぞれにおいて、始点に対する終点の操作力Fの変化の大きさを求め、記憶部であるHDD304に記憶させる。
図6に示すようにグラフで表せば、操作力Fの変化の大きさは、矢印で示すベクトルの角度に比例する。操作力Fの変化の大きさが予め設定された閾値を下回る場合は、「S」のラベル、上回る場合は「L」のラベルを付して、操作力Fの変化の大きさのデータと対応付けてHDD304に記憶させる。また、操作力Fの変化の方向について、ゼロから遠ざかる方向に「+」のラベル,ゼロに近づく方向に「-」のラベルを付す。記憶させたラベルについて、「S」のラベルが付された細区間SAが、予め設定した所定数以上連続している区間を連続区間SBとする。連続区間以外の区間を区間SCとする。
【0055】
補正部340は、連続区間SBに含まれる、操作力Fのデータを平均化処理などで平滑化する。即ち、補正部340は、第1及び第2力のデータの解析によって設定された第2期間内の特定の期間については、教示時にハンドリング部203が操作された操作力Fを平滑化している。力教示データ生成部342は、その平滑化したデータ(操作力)から力教示データ322を生成する。このように、本実施形態では、補正部340及び力教示データ生成部342は、連続区間SBにおいて、ロボットアーム201に発生させる力が平滑化するよう力教示データ322を生成する。このように、微小な変化を平滑化することで、例えば教示者の手振れなどの無駄な動作を除去することができる。
【0056】
補正部340は、連続区間SB以外の区間SCにおいては、以下のように処理する。
図7(a)、
図7(b)及び
図7(c)は、区間S3における操作力のデータの説明図である。破線は、補正前の操作力Fのデータを示し、実線は、補正後の操作力Fのデータを示している。なお、破線と実線とが重なっている箇所は、操作力Fのデータを補正していないことを示している。
【0057】
補正部340は、区間SCにおいて、操作力Fが
図7(a)に示すようにゼロを跨いでいる場合は、操作力Fのデータを補正しない。このため、力教示データ生成部342は、操作力Fのデータをそのまま力教示データ322とする。操作力の正負が反転しているのは、操作者が意図的に振動させている場合など、組立を行う上で重要な動作の可能性があるからである。ここで、操作力Fのデータがゼロを跨ぐとは、操作力Fのデータの正負の符号が入れ替ることである。
【0058】
補正部340は、区間SCにおいて、操作力Fが
図7(b)に示すようにゼロを跨いでいない場合であっても、連続区間SBの終点の操作力Fが、ゼロを含む所定範囲Rの内側に存在する場合は、操作力Fのデータを補正しない。このため、力教示データ生成部342は、操作力Fのデータをそのまま力教示データ322とする。連続区間SBにおいて操作力Fがゼロ近傍の場合、仮にデータを平滑化して力教示データを生成すると、操作力の全てが無視された力ゼロの力教示データになってしまうためである。これを避けるため、
図7(b)の場合、区間SCにおいて操作力Fのデータは補正しない。
【0059】
補正部340は、区間SCにおいて、操作力Fが
図7(c)に示すようにゼロを跨いでいない場合であって、連続区間SBの終点の操作力Fが、ゼロを含む所定範囲Rの外側に存在する場合、操作力Fのデータを平滑化する補正する。具体的には、補正部340は、区間SCにおいて、連続区間のSBの始点と同じ操作力に向かう前半の区間に対する後半の区間の操作力Fのデータを平滑化する。力教示データ生成部342は、補正された操作力Fのデータから力教示データ322を生成する。ここで、区間SCは、連続区間SBよりも前の細区間の集まりである。これにより、本実施形態では、補正部340及び力教示データ生成部342は、連続区間SBよりも前の区間において、ロボットアーム201に発生させる力(第3力)が平滑化するよう力教示データ322を生成する。
図7(c)の例では、区間SCの前半において、力ベクトルの最大傾きで増加し、区間SCの後半において、連続区間SB内の力教示データを最終指令値とした力教示データ322を生成する。これにより、教示者が試行錯誤している間の力変動を除去し、最終的な操作力の結果を初めから反映させることができる。
【0060】
次に、照合部341の処理について説明する。
図8は、コネクタ接続する教示においてリトライ動作を行っている場合を示す説明図である。
図8に示すコネクタW1,W2同士を接続する場合において、例えばフレキシブルフラットケーブルなどの柔軟物Wをハンド202に把持させた場合、力を掛け過ぎると柔軟物Wの変形量が大きくなる。コネクタW1の向きが、組付可能な方向に対してズレが大きくなる。このような場合、教示者は、元の位置に戻す動作を行い、リトライ動作を行って、掛かる力を調整する。
【0061】
図9は、照合部341の処理の説明図である。
図9に示すように、戻し動作が終了したときの位置データは、組み付け作業を行う前の位置データと同じ値となる。したがって、後半のリトライ動作を行う場合、前半の動作は全て不要である。
【0062】
そこで、本実施形態では、照合部341は、区間S2において、時系列の位置データうち、同じ値となる2つの位置データ間のデータを除外するとともに、時系列の操作力データのうち除外した位置データに同期する操作力データを除外する。換言すると、照合部341は、補正部340で補正された操作力データと同期した位置データを参照し、類似した時系列の位置データがあるかどうかを判定する。類似した時系列の位置データがある場合は、類似した時系列の位置データを除外し、同期している力教示データも併せて除外する。力教示データ生成部342は、部分的に除外された操作力データから力教示データ322を生成する。このように、照合部341及び力教示データ生成部342は、区間S2において、時系列の位置データうち、同じ値となる2つの位置データ間のロボットアーム201の動作を省略するよう、力教示データ322を生成する。ここで、「同じ値」とは、予めHDD304等の記憶部に設定された許容差の範囲内で互いに位置データがずれている場合も含む。例えば、許容差が0.1[mm]に設定されている場合、座標X:200.0[mm]、Y:200.0[mm]、Z:200.0[mm]と、座標X:199.9[mm]、Y:200.0[mm]、Z:200.0[mm]とは同じ値であるものとする。なお、2つの位置データ間のロボットアーム201の動作を省略する場合には、2つの位置データのうちいずれか一方の位置データに対応する動作は省略し、他方の位置データに対応する動作は残しておくのが好ましい。
図9の例では、組み付けに失敗した区間S4の動作を省略する。即ち、生成手段(341,342)は、第3センサによって取得した位置姿勢データに基づいてロボットアームの教示時のやり直し動作の有無を判定し、やり直し動作が有ると判定した場合には、失敗時の動作については、再現しないように教示データを生成する。このように、位置データも併せてデータ処理をすることにより、無駄な動作を効果的に除去することができる。
【0063】
以上、ロボット制御装置350の動作を、
図4に示すブロック図に沿って説明した。以下、ロボット制御装置350の一連の処理をまとめると、
図10に示すフローチャートとなる。
図10は、第1実施形態に係るロボット教示方法の一例を示すフローチャートである。
【0064】
まず、CPU301は、教示時のロボットアーム201の時系列の位置データ、操作力データ及び接触力データを取得する(S101)。なお、CPU301は、事前に手動で設定した教示データの区間分割設定や細区間のラベル分けの閾値、位置データの類似判定の設定などを読み込む。
【0065】
次に、CPU301は、教示時の各データを読み込んだ設定に従って区分け処理を行う(S102)。具体的には、CPU301は、
図5の例に示すように区間S1,S3-1,S3-2,S3-3…のように区分けする。
【0066】
CPU301は、区分けしたデータに対し、区間番号1~NMAXを時系列に付与する(S103)。以下、区間毎に教示データを生成する。CPU301は、区間処理番号Nを定義し、まずN=1とする(S104)。
【0067】
CPU301は、N区間目における接触力の有無を判断する(S105)。接触力がない場合(S105:NO)、CPU301は、位置制御をベースとし(S106)、位置指令値を生成する処理を実行する(S107)。ステップS107において、CPU301は、N区間の始点の位置と終了の位置とを、所定の補間方法で結んで、即ち位置データを補正して、位置指令値を生成する。即ち、生成手段としてのCPU301は、第1期間(第1区間)にて再現する位置教示データを、第3センサが取得した位置姿勢データのうちの2点間を所定の補間方法により補間して生成する。
【0068】
接触力がある場合(S105:YES)、CPU301は、力制御をベースとし(S108)、力指令値を生成する処理を実行する(S109)。CPU301は、位置指令値又は力指令値を生成後、N<NMAXであるかどうかを判断する(S110)。N<NMAXである場合(S110:YES)、CPU301は、Nを1つインクリメントし(S111)、ステップS105の処理に戻る。N=NMAXの場合(S110:NO)、CPU301は、全区間の指令値を時系列に並べた教示データ320を生成する(S112)。
【0069】
以下、
図10のステップS109の処理について具体的に説明する。
図11は、力指令値生成処理を示すフローチャートである。CPU301は、位置データにおいて、類似箇所があるかどうかを判定する(S121)。CPU301は、類似箇所がある場合(S121:YES)、位置データが類似すると判定した箇所のデータを、類似箇所の最後のデータを除き、同時系列の力データも併せて削除する削除処理を実行する(S122)。
【0070】
次にCPU301は、N区間目のデータを、力センサのサンプリング周期毎にさらに区分して細区間とする(S123)。CPU301は、各細区間に番号1~nMAXを付与する(S124)。なお、CPU301は、細区間における操作力データの変位が、大きいか小さいかを閾値から判定し、ラベル付けを行う。このとき、CPU301は、変位が小さい細区間が連続している細区間群を連続区間とする。
【0071】
CPU301は、細区間処理番号nを定義し、まずn=1とする(S125)。CPU301は、n区間目の細区間が連続区間であるかどうかを判断する(S126)。連続区間である場合(S126:YES)、CPU301は、操作力データを平均化処理することで、平滑された力指令値を生成する(S127)。
【0072】
CPU301は、連続区間でない場合(S126:NO)、操作力Fがゼロを跨ぐかどうかを判断する(S128)。操作力Fがゼロを跨ぐ場合(S128:YES)、CPU301は、操作力データの処理を行わず力指令値を生成する。操作力Fがゼロを跨がない場合(S128:NO)、CPU301は、N区間目における連続区間の有無や、操作力データが収束する値に応じて、操作力のデータ処理を行う(S129)。上述したように、N区間目に連続区間が存在する場合は、連続区間の開始時の値を目標にした力指令値を生成する。
【0073】
CPU301は、n<n
MAXであるかどうかを判断する(S130)。n<n
MAXである場合(S130:YES)、CPU301は、nを1つインクリメントし(S131)、ステップS126の処理に戻る。n=n
MAXの場合(S130:NO)、
図10のステップS110の処理に移行する。
【0074】
以上の説明では、例えば
図5に示すコネクタW1,W2同士の組み付け動作について説明したが、ロボット200に行わせる作業はこれだけではなく、例えば、探り動作をロボットアーム201に行わせる場合もある。
【0075】
人が視覚に頼らずに手の感覚で組立作業を行う場合がある。目視で大まかな目標位置を決めた後、手の感覚を頼りに組立を進めていく。これは部品に合わせて目視で目標位置を修正しながら組立を行うよりも、大まかな位置に部品を当接させ、ある方向に部品を押し当てながら部品がある状態に収束する組立方法を発見する方が効率的だからと思われる。ロボット200を用いた組立でも同じことが言える。
【0076】
図12(a)~
図12(d)は、ロボットアームの探り動作を教示する説明図である。ワークW12の上面に沿う方向の軸をX,Yとし、X,Y軸に直交する方向の軸をZとする。
図12(a)に示すように、棒状物のワークW11を、ワークW12の挿入穴H12に挿入する際の探り動作(位置探索)をロボットアームに行わせる。ハンドに把持させたワークW11を挿入対象のワークW12の上面に当接させ、Z方向に一定の力で押し付けながら、XY方向に挿入位置を探索する。
図12(b)に示すようにワークW11が挿入穴H12に差し掛かった場合、人は接触力の変化を感じ取り、操作力を変更して組立を
図12(c)及び
図12(d)に示すように次の段階に進める。操作力の変化時に接触力の変化がある場合、動作の歩進条件に接触力の変化を設定することで部品のズレなどを吸収できる組立動作を再現する。しかし、探り動作(位置探索)のように操作力が継続的に変動しているが接触力の変化がない又は少ない場合は、今までと異なる処理になる。教示時の挿入穴H12に差し掛かかるまでの動作範囲内に再生動作時の挿入穴H12がある場合、接触力の変化を動作の歩進条件にすることで組立動作を再現することができるが部品のズレが教示時の動作範囲外にあるときは動作の再現ができない。探り動作に関しては教示時から動作を補完して部品のズレにも対応できるようにする必要がある。
【0077】
そこで、本実施形態では、CPU301は、操作力が継続的に変動しているが接触力の変化がない又は少ない動作は、探り動作と判断し、動作の傾向から再生動作の補完を行う。
図13は、軌道を補完する具体例を示す説明図である。
図13には、3つの探索動作α,β,γを図示している。CPU301は、挿入穴H12に到達する、即ち接触力が変化するまでの各座標の変位から探り動作の傾向を分析し、教示時にない動作を補完することで部品のずれなどに対応することができ、汎用性が高くなる。
【0078】
[第2実施形態]
図14は、第2実施形態に係るロボット装置100Aの説明図である。第1実施形態では、第2センサである複数のトルクセンサであり、ロボットアーム201の各関節に配置される場合について説明した。第2実施形態では、第2センサが力覚センサ252Aである。力覚センサ252Aは、ロボットアーム201の先端とハンドリング部203との間に配置されているのが好ましい。本実施形態では、力覚センサ252Aは、ハンドリング部203に内蔵されている。力覚センサ252Aは、力覚センサ251と同様の構成である。力覚センサ252Aは、ハンドリング部203にかかる力に応じた信号をロボット制御装置350に所定の周期で出力する。第2実施形態においても、第1実施形態と同様、力覚センサ252Aを用いて測定される力F2から力覚センサ251を用いて測定される力F1を差し引くことで、操作力Fを算出することができる。
【0079】
[第3実施形態]
図15は、第3実施形態に係るロボット装置100Bの説明図である。第1実施形態では、第1センサである力覚センサ251を、ロボット200に搭載した場合について説明した。第3実施形態では、第1センサは、作業対象物W22を載置するベースBに設けられた力覚センサ251Bである。力覚センサ251Bは、第1実施形態で説明した力覚センサ251と同様の構成である。
【0080】
ハンド202にワークW21を把持させた場合には、作業対象物W22には、ワークW21が接触する。力覚センサ251Bには、このときの接触力が作用する。力覚センサ251Bは、自身に作用した力に応じた信号をロボット制御装置350に所定の周期で出力する。よって、ロボット制御装置350は、力覚センサ251Bを用いて接触力を測定することができる。
【0081】
[第4実施形態]
ついで、第4実施形態について、
図16乃至
図18(b)に基づいて説明をする。なお、以下の説明において、第1実施形態に対して異なる点についてのみ説明をし、第1実施形態と同様の構成については、同様の参照符号を用いることによって、その説明を省略する。
図16は、第4実施形態に係るロボット装置の制御系を示すブロック図である。
図16に示すように、本実施の形態では、バス310にI/O315を介して操作装置254が接続されている。即ち、操作装置254がロボット制御装置350と接続されており、このロボット制御装置350を介して、ロボット200の位置姿勢情報や力覚センサ251やトルクセンサ252などからの力センサ情報を操作装置254が取得できるように構成されている。
【0082】
図17に示すように、上記操作装置254は、表示部256、操作部257、外部入出力部258、表示制御部259、通信インタフェース部260を備えている。操作装置254は、ロボット制御装置350から取得したデータを処理し、表示部256で表示を行うと共に、操作部257の状態変化をロボット制御装置350へ通知する。ここで、操作部257は、ユーザー(教示作業者)からの操作を受け付けて、表示部256に表示されている表示情報に対する変更操作を可能に制御する制御手段である。また、外部入出力部258は、任意のセンサ信号やトリガ信号などを外部に入出力する為のインタフェースである。更に、表示制御部259は、教示データ生成部343により生成した教示データに対応した表示情報を表示部に出力する出力手段となっている。表示制御部259は、表示部256に対して表示情報を、第1区間(第1期間)と第2区間(第2期間)とを識別可能な時系列情報として表示する。
【0083】
ついで、表示部256の構成について詳しく説明を行う。表示部256は画面の描画を行い、
図18(a)の教示データ確認画面に示すような教示時のデータを表示する。教示データ確認画面は常に表示部256に表示されていても良いし、画面の遷移を行うことで別の画面として切り替え表示されても良い。教示データ確認画面には、教示時のロボット200の位置情報、ロボット200の力センサ情報が時系列データ(時系列生データ)として表示される。また、取得した位置情報や力センサ情報から自動生成された教示データも時系列(時系列教示データ)と併せて表示される。このように取得された時系列生データと、生成された教示データとしての時系列教示データとを比較することで、作業者の意図が忠実に反映されている領域と、省略やスムージングや削除が行われた領域を区別して確認することができる。またこの表示を確認しながら、教示データの修正を行うことができるようにしてもよい。なお、
図18(a)では便宜上、データを上下に配置しているが、同じグラフ上に重ねて表示しても良い。
【0084】
時系列生データは前述したように自動的に区間分割され、区間毎に特徴に合わせてデータ処理が行われ教示データが生成される。上記区間分割は、少なくとも第1区間(第1期間)及び第2区間(第2期間)の単位では分割され、これら分割された区間は操作部257によって独立して選択及び変更操作が可能となっている。より具体的には、本実施形態では、上記区間分割は、第1区間及び第2区間を更に細分化して表示するようになっている。即ち、表示部256には、第1区間をさらに細分化した第1細区間(第1細期間)及び/又は第2期間をさらに細分化した第2細区間(第2細期間)が表示され、これら第1細区間及び第2細区間はそれぞれ独立して選択及び変更操作ができるようになっている。なお、本実施形態では、第1区間及び第2区間において、自動で細区間に分割するように構成しているが、手動で細区間に分割するように構成されてもよく、当然にこれらの細区間は、選択したり、編集や削除したり、することができるようにしてもよい。
【0085】
教示データ確認画面では時系列生データと時系列教示データそれぞれで、区間の区切りが分かるように表示される。上記分割した区間は操作部257に設けられたボタンや、操作装置254の表示部256がタッチパネルになっている場合は、直接画面をクリックすることなどで選択することが可能になっている。選択された区間は選択されたことが分かるように網掛け表示や反転表示、その他色表示などで明示され、選択された区間における教示データ生成の方法が選択指示することを可能としている。ただし、区間の選択なしに常に教示データが時系列生データからどのように生成されたかがわかるような情報を表示していても良い。
【0086】
また、ある区間が選択されると、選択UIを表示し、あらかじめ設定された各種処理から所望の処理を選択可能とする。例えば平均化処理、線形近似、ゼロ値化、省略、最速軌道生成、補正なし(教示生データを忠実に再現する)、などの教示データ生成方法を再選択し、教示データの再生成を行うこともできる。教示データの生成方法を再選択した場合には教示データを再生成するかの確認画面が表示される。ただし、再生成するかの確認画面をなくし、再生成は自動で行っても良い。教示データを再生成した場合には表示部256の時系列教示データが更新表示される。即ち、操作部257を介して、表示部256に表示されている表示情報に対する変更操作が実行されると、更新手段としての表示制御部259によって、上記変更操作に基づいて教示データが更新される。また、教示データの生成方法の再選択および再生成の確認画面はポップアップ画面を表示して行うか操作部257に割り付けられたボタンなどで選択しても良い。
【0087】
また、区間の選択だけではなく、操作部257に設けられたボタンや操作装置254の表示部256がタッチパネルになっている場合は、直接画面をクリックすることなどで上述した区間の区切り自体を選択することも可能である。また自動的に処理生成された区間の区切りの時間軸上での移動や、区切りの削除および追加も行うことができるようにしており、区間の時間幅を変更可能にしている。区間の区切りの選択は上記区間の選択のときと同様の手段で行う。区切りの追加に関しては画面上の区切りがない場所を選択することで追加画面をポップアップ表示させても良いし、操作部257に割り付けられたボタンなどで行えるようにしても良い。なお、上記表示部256がタッチパネルになっている場合は、操作部257が表示部256と一体的に構成される。また、上述した変更操作は、操作部257のボタンもしくはタッチパネルの操作に基づき実行可能となっている。加えて、操作部257のボタンもしくはスイッチとは、物理的なボタン/スイッチであっても、タッチパネル上に画像として表示されるボタン/スイッチであっても、どちらでも良い。
【0088】
ついで、
図18(b)を用いて操作部257の構成について詳しく説明をする。なお、以下の説明においては、操作部257は、
図16の操作装置254上の表示部256上に表示されているボタンを例として説明するが、操作装置254に設けられている物理ボタンであっても良い。
【0089】
操作部257は、教示作業が有効か無効かを切り替える教示有効/無効スイッチ257aを備えており、この教示有効/無効スイッチ257aが有効時には時系列生データを更新表示する。常時、時系列生データを更新表示しても良いが、教示作業以外の不要なときに描画など制御装置の負荷が増大するのを避ける目的で、教示有効/無効スイッチ257aは設けられている。更新表示を行う期間はあらかじめ任意に設定できるが、期間が長すぎるとデータの表示密度が上がり、作業者にとって見難くなるため適度に設定する。
【0090】
また、操作部257は、教示データ取得ボタン257bを備えており、この教示データ取得ボタン257bを操作することによって、表示されている時系列生データをリセットし、表示を一から行うことができるように構成されている。即ち、操作部257は、ハンドリング部203を操作しているときの第1力データ及び第2力データの取得の可否を選択可能な選択部によって、上記教示データ取得ボタン257bの機能を実現している。教示データ取得ボタン257bが押下される、もしくは、教示データ取得ボタンが解除された場合、ロボットはその場で即停止する。また教示データ取得ボタン257bは、ロボット側のハンドリング部203に設置されていても良い。
【0091】
更に、操作部257は、時系列教示データを再現動作させる実行ボタン257cを備えており、実行ボタン257cが押下されるとロボット200(ロボットアーム201)は、選択されている時系列教示データに基づき動作を行うようになっている。
【0092】
ついで、教示時の流れについて詳しく説明を行う。教示作業有効/無効スイッチ257aを有効にし、ロボット200の教示を開始する。教示作業有効/無効スイッチ257aを有効にすると、操作装置254の表示部256に時系列生データがあらかじめ設定した任意の期間、表示される。そして、教示作業者は時系列生データを見ながらワークの組立作業などの検討を進めていく。ついで、試行錯誤が終わり実際に教示データを生成する段階に達すると、教示作業者は教示データ取得ボタン257bを押下し、時系列生データを蓄積させていく。
【0093】
蓄積表示された時系列生データは、上述したように複数の区間に分割して表示されており、教示作業有効中でも選択し削除することは可能である。削除した区間の始めから教示データを取得し直すことができ、削除した区間を選択した状態で教示データ取得ボタン257bを押下すれば教示データの結合が行われる。
【0094】
ただし、削除した区間の直前の区間の最終の時系列生データ(特に位置姿勢情報)と再取得した時系列生データとの間に、予め設定した閾値以上の差がある場合は、警告の表示を行い、データの結合を回避する。また、データがうまく結合できるように作業者をアシストする機能を設けても良い。例えば、削除した区間の直前の区間をトレースするように低速で自動動作を行い、区間の最終区間近傍に到達すると到達を通知する表示を行うような機能である。この場合、作業者は通知が出てから教示データ取得ボタン257bを押下し教示作業を継続する。また削除した次の区間との結合に関しても同様なアシストを行い、教示データ取得ボタン257bが解放された時点で削除された区間の次の区間の始めの位置姿勢まで自動的に動作を補間する機能があっても良い。つまり、教示データの結合部分に急峻な位置姿勢の変化を発生させないことが重要である。ただし、力情報に関しては連続性が失われる為注意が必要である。
【0095】
教示データ取得ボタン257bが押下されると、取得した時系列生データから自動的に時系列教示データが生成され、操作装置254の表示部256に表示される。作業者は表示されている時系列教示データを確認し、適宜編集を行い教示データの保存を行う。
【0096】
ついで、教示データの再生について説明を行う。教示データの再生は実行ボタン257cの押下で行う。作業者は、教示作業時の各種条件、例えば組立対象物の初期位置やロボットの初期位置姿勢などを揃え、実行ボタン257cを押下する。操作装置254の表示部256の時系列教示データ上には再生している箇所が分かるように、時間軸上での位置が分かるように表示される。例えば、時間軸に垂直なバーが時間経過と共に移動していくなどの表示やハイライト表示されるなどである。それにより、教示作業のうまくいった箇所や問題のある箇所が確認でき、教示データの編集がより容易になる。
【0097】
また、時系列生データと時系列教示データは操作装置から再読み込みおよび再編集が可能なようにロボット制御装置350の記憶部などにセットデータとして管理され、保存する教示データは任意のファイル名を付けることが可能である。上記のような操作はロボットのティーチングを行うティーチングペンダントで実行してもよいし、任意のコンピュータ上の所定のアプリケーションで実行するように構成してもよい。
【0098】
以上の機能を有することで、教示データの自動生成や教示データの修正を簡単で分かりやすく実行することができる。そのため、ロボットの扱いに不慣れな初級ユーザーからロボットの扱いに慣れている熟練者まで、簡単に教示データの生成と修正を実行できるUIを提供することができる。また、ロボットの扱いに慣れている熟練者は教示データを確認しながら教示を行い、教示データの生成方法を試行錯誤することが可能な為、簡単な操作で高度な教示を実施することが可能になる。
【0099】
[第5実施形態]
ついで、第5実施形態を
図19に基づいて説明をする。なお、以下の説明では、第4実施形態と異なる点についてのみ説明し、同様の構成については、同じ参照符号を付すことによってその説明を省略する。本実施の形態では、表示部256において、時系列生データと時系列教示データが時間軸を合わせて並べて表示されないように構成されている。例えば、
図19に示すように、不要な動作など時系列教示データの時間軸を一部圧縮し、時間軸のデータの短縮量が分かり易いように区間の対応箇所が認識できるような対応線400を表示している。
【0100】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能であり、各実施形態に記載されている発明はどのように組み合わされても良い。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【0101】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0102】
また、上述の実施形態では、コンピュータ読み取り可能な記録媒体がHDD304の場合について説明したがこれに限らず、記録ディスク326等、いかなる記録媒体であってもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、光ディスク(例えばCD-ROM、DVD-ROM)、光磁気ディスク、磁気テープ、不揮発性のメモリ(例えばUSBメモリ)、ROM等、種々の記録媒体を用いることができる。また、上述の実施形態におけるプログラム325を、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【0103】
また、コンピュータが読み出したプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【0104】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述の実施形態の機能が実現される場合も含まれる。
【符号の説明】
【0105】
100…ロボットシステム(ロボット装置)、200…ロボット、201…ロボットアーム、202…ハンド(エンドエフェクタ)、203…ハンドリング部、251…力覚センサ(第1センサ)、252…トルクセンサ(第2センサ)、253…エンコーダ(第3センサ)、256…表示部、257…操作部、259…出力手段/更新手段(表示制御部)、300…制御システム(制御装置)、301:生成手段(CPU)、320…教示データ、321…位置教示データ、322…力教示データ