(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-26
(45)【発行日】2025-06-03
(54)【発明の名称】制御装置、ロボット制御システム、プログラム、および制御方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20250527BHJP
B25J 13/08 20060101ALI20250527BHJP
【FI】
B25J9/22 A
B25J13/08 Z
(21)【出願番号】P 2021162931
(22)【出願日】2021-10-01
【審査請求日】2024-07-12
(31)【優先権主張番号】P 2020182413
(32)【優先日】2020-10-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】田名網 克周
(72)【発明者】
【氏名】伊藤 康二
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2019-136860(JP,A)
【文献】特開2019-081236(JP,A)
【文献】特開2019-202365(JP,A)
【文献】特開2019-141937(JP,A)
【文献】国際公開第2020/149414(WO,A1)
【文献】特開平02-009553(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットを制御する制御装置であって、1または複数のプロセッサを備え、
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたエンドエフェクタとを含み、
前記1または複数のプロセッサは、
前記エンドエフェクタを移動させる移動処理と、
前記力覚センサの検出値を参照して、前記エンドエフェクタの移動経路に応じた教示情報を生成する生成処理と、
を実行
し、
前記力覚センサは、3軸の各方向に作用する力の大きさ、及び前記3軸の各軸回りのモーメントを検出する6軸力覚センサであり、
前記生成処理は、前記力覚センサの少なくとも何れかの検出値が閾値以上となった場合に、前記エンドエフェクタの移動経路を修正し、修正後の前記移動経路に応じた前記教示情報を生成し、
前記エンドエフェクタの移動経路を修正することは、修正した前記エンドエフェクタの位置を、2点の通過点の間に挿入することである、制御装置。
【請求項2】
前記1または複数のプロセッサは、
前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する第1出力処理をさらに実行し、
前記移動処理は、操作装置に対する教示者の操作に基づいて前記エンドエフェクタを移動させる第1移動処理を含み、
前記生成処理は、前記第1移動処理における前記エンドエフェクタの移動経路を示す情報を前記教示情報として生成する、請求項1に記載の制御装置。
【請求項3】
前記出力装置はディスプレイであり、
前記1または複数のプロセッサは、
前記第1出力処理において、前記エンドエフェクタに対応するオブジェクトを配置した仮想空間を示す画像であって、前記エンドエフェクタの現実の位置に対応する仮想位置に前記オブジェクトを配置した仮想空間を示す画像と、前記エンドエフェクタが当該現実の位置にあるときの前記検出値を示す情報とを前記ディスプレイに表示する、請求項
2に記載の制御装置。
【請求項4】
前記1または複数のプロセッサは、
前記第1移動処理による前記エンドエフェクタの移動中に前記検出値が所定条件を満たすことを検知すると、前記エンドエフェクタの移動を停止させる第1停止処理をさらに実行する、請求項
2または
3に記載の制御装置。
【請求項5】
前記1または複数のプロセッサは、
前記第1移動処理による前記エンドエフェクタの移動経路を示す教示情報をメモリに記憶する記憶処理と、
前記教示情報が示す移動経路に沿って、前記エンドエフェクタを移動させる第2移動処理と、
前記第2移動処理による前記エンドエフェクタの移動中に前記検出値が所定条件を満たすことを検知すると、前記エンドエフェクタの移動を停止させる第2停止処理と、
前記操作装置に対する前記教示者の操作に基づいて、前記エンドエフェクタの位置を、前記第2停止処理により停止した位置から調整する調整処理と、
前記調整処理による前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する第2出力処理と、
前記調整処理によって調整された位置に基づいて前記教示情報を修正する修正処理と、をさらに実行する、請求項
2から
4の何れか1項に記載の制御装置。
【請求項6】
前記1または複数のプロセッサは、
前記教示者による教示のレベルを示すレベル情報を、前記修正処理の実行履歴に基づいて記録するレベル記録処理をさらに実行する、請求項
5に記載の制御装置。
【請求項7】
請求項
2から
6の何れか1項に記載の制御装置と、
前記ロボットと、
前記操作装置と、
前記出力装置と、を含む、ロボット制御システム。
【請求項8】
請求項1から
6の何れか1項に記載の制御装置を動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させるプログラム。
【請求項9】
1または複数のプロセッサがロボットを制御する制御方法であって、
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたエンドエフェクタとを含み、
前記1または複数のプロセッサが、前記エンドエフェクタを移動させる移動ステップと、
前記1または複数のプロセッサが、前記力覚センサの検出値を参照して、前記エンドエフェクタの移動経路に応じた教示情報を生成する生成ステップと、を含
み、
前記力覚センサは、3軸の各方向に作用する力の大きさ、及び前記3軸の各軸回りのモーメントを検出する6軸力覚センサであり、
前記生成ステップでは、前記1または複数のプロセッサが、前記力覚センサの少なくとも何れかの検出値が閾値以上となった場合に、前記エンドエフェクタの移動経路を修正し、修正後の前記移動経路に応じた前記教示情報を生成し、
前記エンドエフェクタの移動経路を修正することは、修正した前記エンドエフェクタの位置を、2点の通過点の間に挿入することである、制御方法。
【請求項10】
前記1または複数のプロセッサが、前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する第1出力ステップをさらに含み、
前記移動ステップは、前記1または複数のプロセッサが、操作装置に対する教示者の操作に基づいてエンドエフェクタを移動させる第1移動ステップを含み、
前記生成ステップでは、前記1または複数のプロセッサが、第1移動ステップにおける前記エンドエフェクタの移動経路を示す情報を前記教示情報として生成する、請求項
9に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに動作を教示する技術に関する。
【背景技術】
【0002】
ロボットに動作を教示する技術が知られている。例えば、特許文献1には、直接教示法と呼ばれる技術の一例が記載されている。この直接教示法では、教示者は、ロボット本体に設置された力センサ(力覚センサ)に力を付与する。演算部は、力センサの出力値に基づいて、ロボット手先部を駆動する駆動部に移動指令を発する。これにより、演算部は、ロボット手先部を教示者の望む位置および姿勢に誘導する。また、演算部は、当該位置および姿勢を記憶部に記憶させる。なお、ロボットが教示者の意に反した過大な動作をしないよう、演算部は、力センサの出力値が所定範囲外であれば、駆動部に移動量ゼロの指令を発する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された技術では、力センサの出力値が所定範囲内であっても、想定外の要因等により、ロボット手先部が教示者の意に反して過大に動作する可能性がある。この場合、ロボットの近傍にいる教示者の安全性が十分に確保できないという課題がある。一方で、教示者の安全性が確保される遠隔教示法等は、直接教示法のように直感的に教示できない。教示者が直感的に教示できないと、教示の精度が充分でない場合がある。
【0005】
本発明の一態様は、上述の課題を解決するためになされたものであり、ロボットに対してより精度よく動作を教示する技術を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係る制御装置は、ロボットを制御する制御装置であって、1または複数のプロセッサを備える。1または複数のプロセッサは、移動処理と、生成処理とを実行する。また、本発明の一態様に係る制御方法は、1または複数のプロセッサがロボットを制御する制御方法であって、移動ステップと、生成ステップとを含む。
【0007】
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたエンドエフェクタとを含む。移動処理(移動ステップ)において、前記1または複数のプロセッサは、前記エンドエフェクタを移動させる。生成処理(生成ステップ)において、前記1または複数のプロセッサは、前記力覚センサの検出値を参照して、前記エンドエフェクタの移動経路に応じた教示情報を生成する。
【発明の効果】
【0008】
本発明の一態様によれば、ロボットに対してより精度よく動作を教示することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態1に係るロボット制御システムの構成を示す模式図である。
【
図2】本発明の実施形態1に係るロボット制御システムの構成を示すブロック図である。
【
図3】本発明の実施形態1における力覚センサの検出値および接続形態の具体例を示す模式図である。
【
図4】本発明の実施形態1に係る制御方法の流れを示すフローチャートである。
【
図5】本発明の実施形態1においてディスプレイに表示される画面の具体例を示す図である。
【
図6】本発明の実施形態1に係る他の制御方法の流れを示すフローチャートである。
【
図7】本発明の実施形態2に係るロボット制御システムの構成を示す模式図である。
【
図8】本発明の実施形態2に係る制御方法の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
〔実施形態1〕
以下、本実施形態に係るロボット制御システム1について、詳細に説明する。
【0011】
<ロボット制御システム1の概要>
ロボット制御システム1は、ロボットを制御するシステムであり、教示者による操作に基づいてロボットを制御する。制御対象のロボットは、アーム部と、力覚センサと、力覚センサを介してアーム部に固定されたエンドエフェクタとを含む。1または複数のプロセッサは、教示者による操作装置に対する操作に基づいてエンドエフェクタを移動させる。また、1または複数のプロセッサは、エンドエフェクタの移動中、力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する。
【0012】
このようなロボット制御システム1では、ロボットから充分に離れた場所(例えば、安全柵の外)で教示者が操作装置を操作することで、教示者の安全性を高めることができる。また、教示者は、力覚センサの検出値をリアルタイムに確認することで、エンドエフェクタにかかる外力を確認しながらエンドエフェクタを移動させる操作を行うことができる。その結果、教示者は、より安全な環境で、より容易にエンドエフェクタの動作を教示することができる。
【0013】
以下では、本実施形態のエンドエフェクタとして、ハンド部を適用する例について説明する。
【0014】
<ロボット制御システム1の構成>
ロボット制御システム1の構成について、
図1および
図2を参照して説明する。
図1は、ロボット制御システム1の構成を示す模式図である。
図2は、ロボット制御システム1の構成を示すブロック図である。
【0015】
図1および
図2に示すように、ロボット制御システム1は、専用コントローラ10と、ロボットコントローラ20と、ロボット30と、ディスプレイ40と、操作装置50とを含む。ここで、専用コントローラ10は、本発明における制御装置の一例である。また、ディスプレイ40は、本発明における出力装置の一例である。ロボット制御システム1は、凹型ワーク92に凸型ワーク91を挿入する動作をロボット30に教示するためのシステムである。
【0016】
(ディスプレイ40および操作装置50の配置位置)
ここで、ディスプレイ40は、教示者Uから視認可能に配置される。また、操作装置50は、ロボット30から所定の距離以上離れた場所(例えば、安全柵の外)に配置される。これにより、教示者Uは、ディスプレイ40を視認しながら、ロボット30に対して遠隔から動作を教示する。
【0017】
(凸型ワーク91および凹型ワーク92)
凸型ワーク91の凸部は、凹型ワーク92の凹部に挿入可能である。本実施形態では、当該凸部は、当該凹部に嵌め込み可能な形状を有している。例えば、凹型ワーク92が凹部を上向きにして配置される場合、凸型ワーク91の凸部を下向きにして下方向に移動させることにより、凸部を凹部に嵌め込むことができる。以降、凸型ワーク91の凸部を凹型ワーク92の凹部に嵌め込むよう凸型ワーク91を移動させることを、凸型ワーク91を凹型ワーク92に挿入する、とも記載する。また、凸型ワーク91を凹型ワーク92に挿入するために移動させる方向を、挿入方向、とも記載する。
【0018】
(ロボット30の構成)
ロボット30は、台座31と、アーム部32と、ハンド部33と、力覚センサ34とを含む。
【0019】
台座31は、ロボット30の配置面に配置される。配置面は、例えば、床等であるが、これに限られない。台座31は、ロボットコントローラ20の制御に基づいて配置面を移動可能であってもよい。
【0020】
アーム部32は、4本のアームを含む。各アームの基端部は、他のアームの先端部または台座31に対して、定められた軸まわりに回転可能に連結される。ロボットコントローラ20の制御に基づいて、各アームが連結部分で回転制御されることにより、アーム部32全体の先端部の軌道が制御される。
【0021】
ハンド部33は、力覚センサ34を介してアーム部32に固定される。ハンド部33は、基部331と、基部331に接続された一対の指部332a、332bとを含む。ハンド部33は、ロボットコントローラ20の制御に基づいて、指部332a、332bを互いに離れるように開く動作と、互いに接近するよう閉じる動作とを行う。ハンド部33は、指部332a、332bの開閉により凸型ワーク91を把持する。以降、指部332a、332bを開閉することを、ハンド部33を開閉するとも記載する。
【0022】
力覚センサ34は、自身に作用する力およびモーメントの方向および大きさを検出する。力覚センサ34の検出値について、
図3を参照して説明する。
図3は、力覚センサ34の検出値および接続形態の具体例を説明する模式図である。
図3に示すように、力覚センサ34は、3軸(x軸、y軸、z軸)の各方向に作用する力の大きさ(Fx、Fy、Fz)と、各軸回りのモーメントの大きさ(Mx、My、Mz)とを検出する6軸力覚センサである。以降、Fx、Fy、Fz、Mx、My、Mzを、力の成分、または、単に検出値とも記載する。
【0023】
また、
図3に示すように、力覚センサ34は、面341と面342とを有する。また、力覚センサ34は、面341を有する部材および面342を有する部材を連結する起歪体(不図示)を有する。力覚センサ34は、内部の起歪体の変形を検出することにより、自身に作用する力の各成分の値を算出する。
【0024】
また、「ハンド部33が力覚センサ34を介してアーム部32に固定される」接続形態の一例について、
図3を参照して説明する。
図3に示すように、アーム部32全体の先端部321は、力覚センサ34の面342に固定される。ハンド部33の基部331は、力覚センサ34の面341に固定される。これにより、ハンド部33が凸型ワーク91を把持した状態で凸型ワーク91に外力が加わると、力覚センサ34にも外力が加わる。したがって、力覚センサ34は、凸型ワーク91に外力が加わると、自身に作用する力の各成分の値を検出する。
【0025】
(ロボットコントローラ20の構成)
ロボットコントローラ20は、ロボット30全体の動作を制御する装置である。
図2に示すように、ロボットコントローラ20は、プロセッサ21と、一次メモリ22と、二次メモリ23と、通信インタフェース(IF)24と、入出力インタフェース(IF)25とを備える。プロセッサ21、一次メモリ22、二次メモリ23、通信インタフェース24、および入出力インタフェース25は、バスを介して相互に接続されている。
【0026】
二次メモリ23には、プログラムP2が格納されている。プログラムP2は、ロボット30全体の動作を制御する処理をプロセッサ21に実行させるためのプログラムである。プロセッサ21は、二次メモリ23に格納されているプログラムP2を一次メモリ22上に展開する。そして、プロセッサ21は、一次メモリ22上に展開されたプログラムP2に含まれる命令に従って、ロボット30全体の動作を制御する処理を実行する。ロボット30全体の動作を制御する処理の詳細については後述する。
【0027】
プロセッサ21として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ21は、「演算装置」と呼ばれることもある。
【0028】
また、一次メモリ22として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ22は、「主記憶装置」と呼ばれることもある。また、二次メモリ23として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標)Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ23は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ23は、ロボットコントローラ20に内蔵されていてもよいし、通信インタフェース24を介してロボットコントローラ20と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、ロボットコントローラ20における記憶を2つのメモリ(一次メモリ22および二次メモリ23)により実現しているが、これに限定されない。すなわち、ロボットコントローラ20における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ22として利用し、そのメモリの他の記憶領域を二次メモリ23として利用すればよい。
【0029】
通信インタフェース24は、専用コントローラ10との通信を行うためのインタフェースである。通信インタフェース24の具体例としては、USB(Universal Serial Bus)、イーサネット(登録商標)、Wi-Fi(登録商標)、シリアル通信システムなどのインタフェースが挙げられる。通信インタフェース24および後述する通信インタフェース14を接続するネットワークシステムの具体例としては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。なお、専用コントローラ10は、入出力インタフェース25に接続されてもよい。
【0030】
入出力インタフェース25には、アーム部32およびハンド部33がそれぞれの駆動部(不図示)を介して接続される。入出力インタフェース25としては、例えば、シリアル通信、イーサネット(登録商標)、DeviceNet、CC-Link、PROFIBUS、EtherNet(登録商標)/IP、EtherCat(Ethernet for Control Automation Technology)などのインタフェースが挙げられる。なお、アーム部32およびハンド部33の一方または両方は、駆動部を介して通信インタフェース24に接続されてもよい。
【0031】
(ロボット30全体の動作を制御する処理)
ロボットコントローラ20がロボット30全体の動作を制御する処理は、移動制御処理、および把持制御処理を含む。移動制御処理は、アーム部32全体の先端部321を移動させる処理である。先端部321が移動すると、先端部321に力覚センサ34を介して固定されたハンド部33も移動する。以降、先端部321を移動させることを、ハンド部33を移動させるとも記載する。プロセッサ21は、アーム部32の各連結部分を駆動する駆動部に制御情報を送信することにより、ハンド部33を移動させる。プロセッサ21は、外部から受信した情報が示す位置までハンド部33を移動させてもよい。また、プロセッサ21は、外部から受信した情報が示す方向にハンド部33を移動させてもよい。
【0032】
把持制御処理は、ハンド部33に凸型ワーク91を把持させる処理である。プロセッサ21は、アーム部32の先端部321を昇降する昇降処理と、ハンド部33を開閉する開閉処理とを組み合わせることにより、把持制御処理を行う。プロセッサ21は、アーム部32の各連結部分を駆動する駆動部に制御情報を送信することにより、昇降処理を行う。また、プロセッサ21は、指部332a、332bを駆動する駆動部に制御情報を送信することにより、開閉処理を行う。
【0033】
(専用コントローラ10の構成)
専用コントローラ10は、ロボット30に動作を教示するための各処理を実行する装置である。専用コントローラ10は、操作装置50に対する教示者Uの操作に基づいてハンド部33を移動させる。また、専用コントローラ10は、ハンド部33の移動中、力覚センサ34の各検出値を示す情報をリアルタイムにディスプレイ40に表示する。
【0034】
図2に示すように、専用コントローラ10は、プロセッサ11と、一次メモリ12と、二次メモリ13と、通信インタフェース14と、入出力インタフェース15とを含む。プロセッサ11、一次メモリ12、二次メモリ13、通信インタフェース14、および入出力インタフェース15は、バスを介して相互に接続されている。
【0035】
二次メモリ13には、プログラムP1および教示情報Dが格納されている。プログラムP1は、後述する制御方法S1および制御方法S2をプロセッサ11に実行させるためのプログラムである。プロセッサ11は、二次メモリ13に格納されているプログラムP1を一次メモリ12上に展開する。そして、プロセッサ11は、一次メモリ12上に展開されたプログラムP1に含まれる命令に従って、制御方法S1および制御方法S2に含まれる各ステップを実行する。教示情報Dは、制御方法S1および制御方法S2を実行するプロセッサ11によって参照される情報である。教示情報Dの詳細については後述する。
【0036】
プロセッサ11として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ11は、「演算装置」と呼ばれることもある。
【0037】
また、一次メモリ12として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ12は、「主記憶装置」と呼ばれることもある。また、二次メモリ13として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標)Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ13は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ13は、専用コントローラ10に内蔵されていてもよいし、通信インタフェース14または入出力インタフェース15を介して専用コントローラ10と接続された他のコンピュータ(例えば、ロボットコントローラ20、または、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、専用コントローラ10における記憶を2つのメモリ(一次メモリ12および二次メモリ13)により実現しているが、これに限定されない。すなわち、専用コントローラ10における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ12として利用し、そのメモリの他の記憶領域を二次メモリ13として利用すればよい。
【0038】
通信インタフェース14は、ロボットコントローラ20との通信を行うためのインタフェースである。通信インタフェース14の具体例としては、USB(Universal Serial Bus)、イーサネット(登録商標)、Wi-Fi(登録商標)、シリアル通信システムなどのインタフェースが挙げられる。通信インタフェース14および通信インタフェース24を接続するネットワークシステムの具体例としては、前述した通りである。PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。なお、ロボットコントローラ20は、入出力インタフェース15に接続されてもよい。
【0039】
入出力インタフェース15には、力覚センサ34、ディスプレイ40、および操作装置50が接続される。入出力インタフェース15としては、例えば、シリアル通信、イーサネット(登録商標)、USB、A/Dコンバータ、EtherCat(Ethernet for Control Automation Technology)などのインタフェースが挙げられる。なお力覚センサ34は、通信インタフェース14、または入出力インタフェース25に接続されてもよい。
【0040】
(ディスプレイ40の構成)
ディスプレイ40は、画像を表示する表示領域を有する。ディスプレイ40は、プロセッサ11が生成した画像を表示領域に表示する。以降、画像をディスプレイ40の表示領域に表示することを、単に、ディスプレイ40に表示する、とも記載する。また、表示領域に表示された画像を、画面とも記載する。ディスプレイ40としては、例えば、液晶ディスプレイ、プラズマディスプレイ、および有機EL(Electro Luminescence)ディスプレイ等が挙げられる。
【0041】
(操作装置50の構成)
操作装置50は、教示者Uの操作を受け付ける操作部を有する。教示者Uの操作とは、ハンド部33の移動方向を指示する操作を含む。また、教示者Uの操作とは、各種処理の確定を指示する操作を含む。
【0042】
例えば、操作部は、上、下、右、左といった各方向ボタンとして機能する押しボタンを含んで構成される。各方向ボタンは、移動方向を指示する操作を受け付ける。操作装置50は、何れかの方向ボタンが押下されると、当該方向ボタンに対応する方向を示す方向情報を、専用コントローラ10に送信する。なお、移動方向を指示する操作は、ジョイスティック等によっても受付可能である。この場合、操作装置50は、ジョイスティックが傾けられると、傾けられた方向を示す方向情報を、専用コントローラ10に送信すればよい。
【0043】
また、例えば、操作部は、確定ボタンとして機能する押しボタンを含んで構成される。確定ボタンは、各種処理の確定を指示する操作を受け付ける。操作装置50は、確定ボタンが押下されると、確定の指示を示す確定情報を専用コントローラ10に送信する。
【0044】
また、操作装置50は、操作部として、上述した押しボタン、ジョイスティック等の物理的なユーザインタフェースに変えて、または、加えて、タッチパネルを有していてもよい。この場合、操作装置50は、タッチパネルに、上述した方向ボタン、ジョイスティック、および決定ボタンとしてそれぞれ機能するユーザインタフェースオブジェクトを表示する。また、操作装置50は、各ユーザインタフェースオブジェクトに対するタッチ操作を受け付けると、方向情報または確定情報を専用コントローラ10に送信する。
【0045】
以下では、操作装置50は、方向ボタンおよび確定ボタンを有するものとして説明する。
【0046】
<ロボット制御システム1が実行する制御方法>
ロボット制御システム1は、制御方法S1と、制御方法S2とを実行する。制御方法S1は、ロボット30にハンド部33の動作を教示するための方法である。制御方法S2は、ロボット30を試験的に動作させながら、ハンド部33に教示した動作を修正するための方法である。
【0047】
<制御方法S1の流れ>
プロセッサ11が実行する制御方法S1について、
図4を参照して説明する。
図4は、制御方法S1の流れを示すフローチャートである。
図4に示すように、制御方法S1は、ステップS101からS112までを含む。
【0048】
(ステップS101)
ステップS101において、プロセッサ11は、ハンド部33に凸型ワーク91を把持させる。具体的には、プロセッサ11は、ハンド部33を把持位置まで移動させてから凸型ワーク91を把持するよう、ロボットコントローラ20に要求する。
【0049】
より具体的には、プロセッサ11は、把持位置を示す情報をロボットコントローラ20に送信して、当該把持位置までの移動制御処理を要求する。把持位置は、凸型ワーク91が配置された位置の上方にあらかじめ定められる。例えば、ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該把持位置まで移動させる。また、プロセッサ11は、ロボットコントローラ20に把持制御処理を要求する。ロボットコントローラ20のプロセッサ21は、把持制御処理の要求を受信すると、ハンド部33を開いて凸型ワーク91の位置まで下降させる。そして、プロセッサ21は、ハンド部33を閉じて凸型ワーク91を把持させ、元の把持位置まで上昇させる。
【0050】
なお、当該ステップにおいて、ハンド部33は、凸型ワーク91を、凹型ワーク92に挿入可能な向きで把持する。ここで、
図1に示すように、凹型ワーク92が凹部を上側に向けて配置されている場合、挿入可能な向きは、凸部が下側となる向きである。例えば、把持する前の凸型ワーク91を凸部が下側となるよう配置しておくことにより、ハンド部33は、凸型ワーク91を凹型ワーク92に挿入可能な向きで把持することができる。
【0051】
(ステップS102)
ステップS102において、プロセッサ11は、ハンド部33を開始位置まで移動させる。ここで、開始位置とは、教示を開始する位置である。開始位置は、事前に定められている場合と、教示者Uにより指定される場合とがある。
【0052】
開始位置が事前に定められている場合について説明する。この場合、開始位置として、例えば、凹型ワーク92の上方の位置が事前に定められる。プロセッサ11は、ハンド部33を開始位置まで移動させるよう、ロボットコントローラ20に要求する。より具体的には、プロセッサ11は、開始位置を示す情報をロボットコントローラ20に送信して、当該開始位置までの移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該開始位置まで移動させる。
【0053】
開始位置が教示者Uにより指定される場合について説明する。この場合、教示者Uは、ハンド部33を所望の開始位置まで移動させるよう、操作装置50の方向ボタンを操作する。プロセッサ11は、操作装置50から受信した方向情報をロボットコントローラ20に送信して移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、当該方向情報が示す方向にハンド部33を移動させる。教示者Uは、ハンド部33が所望の開始位置まで移動すると、操作装置50の確定ボタンを操作する。プロセッサ11は、操作装置50から確定情報を受信すると、その時点のハンド部33の位置を開始位置とする。プロセッサ11は、開始位置を示す情報を、移動経路の最初の通過点を示す情報として一次メモリ12に記憶する。
【0054】
(ステップS103)
ステップS103において、プロセッサ11は、力覚センサ34をリセットする。力覚センサ34は、リセット時点の状態で各検出値としてゼロを出力する。
【0055】
(ステップS104)
ステップS104において、プロセッサ11は、ハンド部33を移動させる移動処理を実行する。具体的には、プロセッサ11は、操作装置50に対する教示者Uの操作(例えば、方向ボタンの押下)に基づいて、ハンド部33を移動させるようロボットコントローラ20に要求する。当該ステップの処理は、本発明における第1移動処理の一例である。より具体的には、プロセッサ11は、操作装置50から受信する方向情報をロボットコントローラ20に送信して、当該移動方向への移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、当該方向情報が示す方向にハンド部33を移動させる。当該ステップは、後述するステップS106でディスプレイ40に力覚センサ34の各検出値が表示された後、繰り返し実行される。これにより、教示者Uは、ディスプレイ40にリアルタイムに表示される各検出値を視認しながら、ハンド部33を移動させるよう操作装置50を操作することができる。教示者Uによる操作の詳細については後述する。
【0056】
(ステップS105)
ステップS105において、プロセッサ11は、力覚センサ34から各検出値を取得する。ここで、凸型ワーク91が凹型ワーク92に対して適切な挿入方向で移動中の場合、凸型ワーク91に外力はかからない。この場合、力覚センサ34の各検出値としてゼロが取得される。また、凸型ワーク91が適切な挿入方向からずれた方向に移動中の場合、凸型ワーク91に凹型ワーク92から外力が付与される。この場合、力覚センサ34の少なくとも何れかの検出値としてゼロより大きな値が取得される。
【0057】
また、ステップS105において、プロセッサ11は、ハンド部33の位置を示す情報を取得する。また、ハンド部33の向きが可変である場合、プロセッサ11は、さらにハンド部33の向きを示す情報を取得してもよい。
【0058】
(ステップS106)
ステップS106において、プロセッサ11は、ハンド部33の位置を示す情報、および力覚センサ34の各検出値を示す情報を、ディスプレイ40にリアルタイムに表示する。また、ハンド部33の向きが可変である場合、プロセッサ11は、さらにハンド部33の向きを示す情報をリアルタイムに表示してもよい。当該ステップの処理は、本発明における第1出力処理の一例である。
【0059】
具体的には、プロセッサ11は、ハンド部33に対応するオブジェクトを配置した仮想空間を示す画像と、ハンド部33の位置を示す情報と、各検出値を示す情報とを、ディスプレイ40にリアルタイムに表示する。当該仮想空間では、ハンド部33の現実の位置に対応する仮想位置に、ハンド部33に対応するオブジェクトが配置される。各検出値を示す情報は、ハンド部33が当該現実の位置にあるときの検出値を示す。当該ステップにおいてディスプレイ40に表示される画面例については後述する。
【0060】
(ステップS107)
ステップS107において、プロセッサ11は、力覚センサ34の検出値が所定条件を満たすか否かを判断する。ここでは、所定条件は、少なくとも何れかの検出値が閾値を超えることである。閾値は、力覚センサ34の検出値Fx,Fy,Fz,Mx,My,Mzのそれぞれについて定められている。
【0061】
なお、各検出値の閾値のうち、検出値Fzの閾値は、他の検出値の閾値よりも大きい値が定められる。これは、凸型ワーク91が適切な位置まで挿入されると、凸部の先端が凹型ワーク92に到達し、凸型ワーク91に対してz軸方向のみ外力が付与されるからである。
【0062】
(ステップS107でYes:ステップS108)
ステップS107でYesと判断した場合、ステップS108において、プロセッサ11は、ハンド部33を停止させるよう、ロボットコントローラ20に要求する。当該ステップの処理は、本発明における第1停止処理の一例である。ロボットコントローラ20のプロセッサ21は、停止の要求を受信すると、ハンド部33の移動を停止させる。そして、プロセッサ11は、制御方法S1を終了する。
【0063】
(ステップS107でNo:ステップS109)
ステップS107でNoと判断した場合、ステップS109において、プロセッサ11は、ハンド部33の現在位置を、移動経路の通過点として記憶するか否かを判断する。例えば、プロセッサ11は、操作装置50に対する教示者Uの操作(例えば、確定ボタンの押下)に基づいて当該判断を行ってもよい。この場合、例えば、プロセッサ11は、操作装置50から確定情報を受信すると、ハンド部33の現在位置を通過点として記憶すると判断する。
【0064】
(ステップS109でNo)
ステップS109でNoと判断した場合、プロセッサ11は、ステップS104からの処理を繰り返す。
【0065】
(ステップS109でYes:ステップS110)
ステップS109でYesと判断した場合、ステップS110において、プロセッサ11は、ハンド部33の現在位置を示す情報を取得する。ハンド部33の位置は、例えば、開始位置を原点とする空間座標で表される。例えば、プロセッサ11は、ハンド部33の移動方向および移動距離の履歴に基づいて、ハンド部33の現在位置を算出してもよい。また、プロセッサ11は、ハンド部33の現在位置を示す情報を、通過点を示す情報として一次メモリ12に記憶する。
【0066】
(ステップS111)
ステップS111において、プロセッサ11は、教示が終了したか否かを判断する。例えば、プロセッサ11は、操作装置50に対する教示者Uの操作(例えば、確定ボタンの押下)に基づいて、当該判断を行ってもよい。この場合、例えば、プロセッサ11は、操作装置50から確定情報を受信すると、教示が終了したと判断する。
【0067】
また、例えば、プロセッサ11は、力覚センサ34の検出値に基づいて、教示が終了したか否かを判断してもよい。例えば、凸型ワーク91が適切な位置まで挿入されると、前述したように凸型ワーク91に対してz軸方向のみ外力がかかり、検出値Fzのみが大きくなる。そこで、プロセッサ11は、検出値Fzが所定値を超え、かつ、他の検出値がゼロであることを、教示の終了条件としてもよい。
【0068】
(ステップS111でNo)
ステップS111でNoと判断した場合、プロセッサ11は、ステップS104からの処理を繰り返す。
【0069】
(ステップS111でYes:ステップS112)
ステップS111でYesと判断した場合、ステップS112において、プロセッサ11は、ハンド部33の移動経路を示す教示情報Dを、二次メモリ13に記憶する。当該ステップは、本発明における記憶処理の一例である。そして、プロセッサ11は、制御方法S1を終了する。
【0070】
ここで、教示情報Dは、第1移動処理(ステップS104)によるハンド部33の移動経路を示す情報である。例えば、プロセッサ11は、教示が終了したと判断した時点におけるハンド部33の位置(以降、終了位置とも記載)を示す情報を、移動経路の最後の通過点を示す情報として一次メモリ12に記憶する。プロセッサ11は、一次メモリ12に記憶した通過点を示す情報を、通過した順に並べた配列を教示情報Dとする。換言すると、教示情報Dは、移動経路に沿った順で並べた通過点を示す情報の配列である。このように、教示情報Dは、力覚センサ34の出力値を参照して何れの出力値も閾値を超えない(ステップS107でNoである)場合に生成される。このため、このような教示情報Dを生成する処理は、本発明における「力覚センサの検出値を参照して、エンドエフェクタの移動経路に応じた教示情報を生成する生成処理」の一例である。
【0071】
<画面例>
次に、制御方法S1における画面の具体例について、
図5を参照して説明する。
図5は、ディスプレイ40に表示される画面の一例(画面G1)である。ここでは、画面G1は、制御方法S1におけるn回目(nは2以上の整数)の繰り返し処理で出力される画面の一例である。以下では、i(i=1,2,3,…,n)回目の繰り返し処理の実行時点を時点iとも記載する。
図5に示すように、画面G1は、領域G101、G102、およびG103を含む。
【0072】
(領域G101)
領域G101は、領域G101aと、領域G101bとを含む。領域G101aは、ハンド部33の位置に関する情報の履歴をリアルタイムで表示する領域である。領域G101bは、ハンド部33の現在の位置に関する情報をリアルタイムで表示する領域である。
【0073】
具体的には、領域G101aは、開始位置p1から直前位置p(n-1)までのハンド部33の位置に関する情報を含む。なお、直前位置p(n-1)とは、時点t(n-1)におけるハンド部33の位置をいう。この例では、領域G101aには、時点ti(i=1,2,3,…,n-1)について、ハンド部33の位置piに関する情報と、力覚センサ34の検出値を示す情報とが表示されている。具体的には、位置piに関する情報として、xi,yi,zi,Rxi,Ryi,Rziをそれぞれ示す値が表示される。(xi,yi,zi)は、位置piを示す。(Rxi,Ryi,Rzi)は、位置piにおけるハンド部33の向きを示す。また、時点tiにおける力覚センサ34の検出値を示す情報として、Fxi,Fyi,Fzi,Mxi,Myi,Mziをそれぞれ示す値が表示される。
【0074】
また、領域G101bは、現時点tnにおけるハンド部33の現在位置pnに関する情報を含む。具体的には、領域G101bに含まれる(x,y,z)は、現在位置pnを示す。また、領域G101bに含まれる(Rx,Ry,Rz)は、現在位置pnにおけるハンド部33の向きを示す。
【0075】
(領域G102)
領域G102は、力覚センサ34の各検出値を示す情報をリアルタイムで表示する領域である。具体的には、領域G102は、領域G102aと、領域G102bとを含む。領域G102aには、各検出値の現時点tnまでの時間変化を示すグラフが表示される。領域G102bには、現時点tnにおける力覚センサ34の各検出値が表示される。このように、領域G102は、ハンド部33が現在位置pnにあるときの力覚センサ34の各検出値を示す情報を含んでいる。プロセッサ11は、ステップS106において、現時点tnの各検出値を用いて領域G102aおよび領域G102bを更新する。
【0076】
(領域G103)
領域G103は、オブジェクトOBJ33を配置した仮想空間を示す画像を、リアルタイムで表示する領域である。オブジェクトOBJ33は、ハンド部33に対応するオブジェクトである。当該仮想空間では、ハンド部33の現実の現在位置pnに対応する仮想位置に、オブジェクトOBJ33が配置される。また、当該仮想空間には、凸型ワーク91、凹型ワーク92にそれぞれ対応するオブジェクトOBJ91、OBJ92が、現実の位置に対応する仮想位置に配置される。オブジェクトOBJ92は、凹型ワーク92の凹部に対応する凹部OBJ92aを有する。凹部OBJ92aは、オブジェクトOBJ91が凹部OBJ92aに進入したときにオブジェクトOBJ91の先端部と密着する形状を有している。例えば、プロセッサ11は、当該仮想空間においてオブジェクトOBJ33(またはOBJ91、OBJ92)を仮想視点から見た視野画像を生成し、生成した視野画像を領域G103に表示する。また、プロセッサ11は、ハンド部33および凸型ワーク91の現実の位置が移動すると、仮想空間におけるオブジェクトOBJ33およびOBJ91の仮想位置を移動して視野画像を更新する。なお、仮想視点とは、仮想空間における視点の位置である。仮想視点は、事前に定められた仮想位置であってもよいし、操作装置50等の現実の位置に対応する仮想位置であってもよい。また、仮想視点は、教示者Uの操作に応じて変更可能であってもよい。
【0077】
<教示者Uによる操作の流れ>
制御方法S1を実行するロボット制御システム1を用いることにより、教示者Uは、安全柵の外において、ディスプレイ40に表示された画面G1を見ながら、ロボット30に動作を教示する操作を行うことができる。教示者Uは、凸型ワーク91を把持したハンド部33が開始位置まで移動した後(すなわち、プロセッサ11がステップS101~S103までを実行した後)、以下のステップA1~A5の操作を行う。
【0078】
(ステップA1)
ステップA1において、教示者Uは、操作装置50の方向ボタンを操作することにより、画面G1を視認しながらハンド部33を移動させる。これにより、プロセッサ11は、ステップS104~S107までを実行する。
【0079】
ここで、もし、凸型ワーク91の移動方向が、凹型ワーク92に対する適切な挿入方向からずれていると、凸型ワーク91に外力がかかる。その結果、力覚センサ34の少なくとも何れかの検出値がゼロを超え、領域G102にゼロを超えた検出値が表示される。この場合、教示者Uは、領域G101およびG103を視認することで、ハンド部33がどの位置にあるときに凸型ワーク91に外力がかかるのかを確認することができる。これにより、教示者Uは、ハンド部33の移動方向と、適切な挿入方向とのずれを認識することができる。そこで、教示者Uは、当該検出値がゼロになるようハンド部33を移動させて、移動方向が適切な挿入方向に沿うように操作する。
【0080】
(ステップA2)
ステップA2において、教示者Uは、操作装置50の確定ボタンを操作することにより、ハンド部33の現在位置を通過点とする操作を行う。これにより、プロセッサ11は、ステップS109~S110までの処理を実行し、当該通過点を示す情報を一次メモリ12に追加して記憶する。
【0081】
(ステップA3)
ステップA3において、教示者Uは、ステップA1~A2を繰り返す。
【0082】
(ステップA4)
ステップA4において、教示者Uは、領域G101において、検出値Fzのみがゼロを超えた値となり、かつ、他の検出値がゼロであることを確認する。前述したように、検出値Fzのみがゼロより大きい状態は、凸型ワーク91の凸部の先端が凹型ワーク92に到達したこと、すなわち、適切な挿入位置に達したことを示している。
【0083】
(ステップA5)
ステップA5において、教示者Uは、操作装置50の確定ボタンを操作することにより、教示を終了する。これにより、プロセッサ11は、ステップS111~S112を実行する。また、これにより、二次メモリ13には、開始位置から終了位置までの2以上の通過点をそれぞれ示す情報の配列が、教示情報Dとして記憶される。
【0084】
例えば、開始時点t1から教示の終了時点tNまでに、ハンド部33が位置p1からpN(Nはn以上の整数)まで移動したとする。また、N個の位置piのうちM個が通過点Pj(j=1,2,…,M:Mは2以上の整数、P1=p1、PM=pN)として記憶されたとする。この場合、教示情報Dは、通過点P1,P2,…,PMを示す情報がこの順に並んだ配列である。つまり、教示情報Dは、通過点P1,P2,…,PMをこの順に通過する移動経路を示す。
【0085】
また、教示者Uは、操作装置50を用いてロボット30に対して遠隔で動作を教示する際に、画面G1により、凸型ワーク91にかかる外力とハンド部33の位置との関係を確認することができる。したがって、教示者Uは、遠隔からも容易に動作を教示することができる。
【0086】
<制御方法S2の流れ>
プロセッサ11が実行する制御方法S2について、
図6を参照して説明する。制御方法S2は、前述したように、ロボット30を試験的に動作させながら、ハンド部33に教示した動作を修正するための方法である。
図6は、制御方法S2の流れを示すフローチャートである。
図6に示すように、制御方法S2は、ステップS201からS212までを含む。
【0087】
(ステップS201~S203)
ステップS201~S203におけるプロセッサ11の動作は、ステップS101~S103における動作と同様である。これにより、プロセッサ11は、ハンド部33に凸型ワーク91を把持させて開始位置まで移動させるとともに、力覚センサ34をリセットする。
【0088】
(ステップS204)
次に、プロセッサ11は、二次メモリ13から教示情報Dを読み込み、読み込んだ教示情報Dが示す移動経路に沿ってハンド部33を移動させる(S204)。当該ステップの処理は、本発明における第2移動処理の一例である。より具体的には、プロセッサ11は、教示情報Dを参照することにより、移動経路における最初の通過点を示す情報を取得する。また、プロセッサ11は、当該通過点を示す情報をロボットコントローラ20に送信して移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該通過点まで移動させる。そして、プロセッサ11は、移動経路における次の通過点を示す情報を取得して、ロボットコントローラ20に送信することを繰り返す。これにより、ハンド部33は、教示情報Dが示す移動経路に沿って移動する。
【0089】
(ステップS205)
ステップS205において、プロセッサ11は、力覚センサ34から各検出値を取得する。ここで、凸型ワーク91が適切な挿入方向で移動中の場合、凸型ワーク91に外力はかからない。この場合、力覚センサ34の各検出値としてゼロが取得される。また、凸型ワーク91が適切な挿入方向からずれた方向に移動中の場合、凸型ワーク91に凹型ワーク92から外力が付与される。この場合、力覚センサ34の少なくとも何れかの検出値としてゼロより大きな値が取得される。
【0090】
また、ステップS205において、プロセッサ11は、ハンド部33の位置を示す情報を取得する。また、ハンド部33の向きが可変である場合、プロセッサ11は、さらにハンド部33の向きを示す情報を取得してもよい。
【0091】
(ステップS206)
ステップS206において、プロセッサ11は、ハンド部33の位置を示す情報、および力覚センサ34の各検出値を示す情報を、ディスプレイ40にリアルタイムに表示する。また、ハンド部33の向きが可変である場合、プロセッサ11は、さらにハンド部33の向きを示す情報をリアルタイムに表示してもよい。なお、ステップS205およびS206の処理は、後述するステップS209の調整処理の間も、繰り返し実行される。当該ステップの処理は、本発明における第2出力処理の一例である。
【0092】
具体的には、プロセッサ11は、第1出力処理と同様に、ハンド部33に対応するオブジェクトを配置した仮想空間を示す画像と、ハンド部33の位置を示す情報と、各検出値を示す情報とを、ディスプレイ40にリアルタイムに表示する。当該仮想空間では、ハンド部33の現実の現在位置に対応する仮想位置に、当該オブジェクトが配置される。各検出値を示す情報は、ハンド部33が当該現実の現在位置にあるときの検出値を示す。当ステップにおいてディスプレイ40に表示される画面例は、
図5を参照して説明した通りである。
【0093】
(ステップS207)
ステップS207において、プロセッサ11は、力覚センサ34の検出値が所定条件を満たすか否かを判断する。ここでは、所定条件は、ステップS107で用いた所定条件と同一であり、少なくとも何れかの検出値が閾値以上となることである。当ステップの処理の詳細は、ステップS107で説明した通りである。
【0094】
(ステップS207でNo)
ステップS207でNoと判断した場合、プロセッサ11は、後述するステップS212の処理を実行する。
【0095】
(ステップS207でYes:ステップS208)
ステップS207でYesと判断した場合、ステップS208において、プロセッサ11は、ハンド部33を停止させるよう、ロボットコントローラ20に要求する。当該ステップの処理は、本発明における第2停止処理の一例である。ロボットコントローラ20のプロセッサ21は、停止の要求を受信すると、ハンド部33の移動を停止させる。このとき、例えば、プロセッサ11は、ハンド部33の現在位置を示す情報を、修正すべき箇所としてディスプレイ40に表示してもよい。
【0096】
(ステップS209)
ステップS210において、プロセッサ11は、操作装置50に対する教示者Uの操作(例えば、方向ボタンの押下)に基づいて、ハンド部33の位置を、第2停止処理により停止した位置から調整する。当該ステップの処理は、本発明における調整処理の一例である。
【0097】
より具体的には、プロセッサ11は、操作装置50から受信する方向情報をロボットコントローラ20に送信して、当該移動方向への移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該移動方向に移動させる。ここで、前述したように、当該ステップの実行中において、ステップS205およびS206の各処理は繰り返し実行される。つまり、ディスプレイ40には、調整処理に応じて変化し得る各検出値を示す情報が、リアルタイムに表示される。これにより、教示者Uは、ディスプレイ40にリアルタイムに表示される各検出値を視認しながら、ハンド部33の位置を調整する操作を行うことができる。教示者Uによる操作の詳細については後述する。
【0098】
(ステップS210)
ステップS210において、プロセッサ11は、調整が終了したか否かを判断する。例えば、プロセッサ11は、操作装置50に対する教示者Uの操作(例えば、確定ボタンの押下)に基づいて、当該判断を行ってもよい。この場合、プロセッサ11は、操作装置50から確定情報を受信すると、調整が終了したと判断する。
【0099】
(ステップS211)
ステップS211において、プロセッサ11は、調整処理により調整された位置に基づいて教示情報Dを修正する。当該ステップの処理は、本発明における修正処理の一例である。
【0100】
具体的には、例えば、プロセッサ11は、ハンド部33の現在位置を示す情報を取得する。また、プロセッサ11は、取得した現在位置を示す情報を用いて、教示情報Dを修正する。例えば、教示情報Dが、M個の通過点Pjを示す情報をこの順に含むとする。また、ハンド部33の現在位置(すなわち、修正すべき箇所)が、通過点PkとPk+1の間にあるとする。この場合、プロセッサ11は、通過点PkとPk+1の間に、現在位置を新たな通過点として挿入するよう、教示情報Dを修正する。
【0101】
(ステップS212)
ステップS212において、プロセッサ11は、ハンド部33が、教示情報Dが示す移動経路の終了位置に到達したか否かを判断する。
【0102】
ステップS212でNoと判断した場合、プロセッサ11は、ステップS204からの処理を繰り返す。ステップS212でYesと判断した場合、プロセッサ11は、制御方法S2を終了する。
【0103】
<教示者Uによる操作の流れ>
制御方法S2を実行するロボット制御システム1を用いることにより、教示者Uは、安全柵の外において、ディスプレイ40に表示された画面G1を見ながら、教示した移動経路を修正する操作を行うことができる。教示者Uは、凸型ワーク91を把持したハンド部33が開始位置まで移動した後(すなわち、プロセッサ11がステップS201~S203までを実行した後)、以下のステップB1~B6の操作を行う。
【0104】
(ステップB1)
ステップB1において、ロボット30が教示情報Dに従って試験的に動作している間、教示者Uは、画面G1を視認する。つまり、プロセッサ11は、ステップS204~S206までの処理を実行する。
【0105】
(ステップB2)
ステップB2において、力覚センサ34の何れかの検出値が閾値を超えると、ハンド部33が停止する。つまり、プロセッサ11は、ステップS207~S208までの処理を実行する。そこで、教示者Uは、画面G1を視認することにより、移動経路において修正すべき箇所を確認する。
【0106】
(ステップB3)
このとき、画面G1の領域G101には、ハンド部33の現在位置が、修正すべき箇所を示す態様で表示される。例えば、ステップB2において、
図5に示した画面G1がディスプレイ40に表示されているとする。つまり、ハンド部33が位置pnにあるときに、力覚センサ34の少なくとも何れかの検出値が閾値を超えたとする。この場合、位置pnは、移動経路において修正すべき箇所である。そこで、プロセッサ11は、領域G101における位置pnの行を、修正すべき箇所を示す態様で表示する。なお、修正すべき箇所を示す態様としては、例えば、文字色または文字の背景色の変更、太字、点滅等があるが、これらに限られない。
【0107】
(ステップB4)
ステップB4において、教示者Uは、操作装置50の方向ボタンを操作することにより、領域G102を視認しながらハンド部33を移動させる。これにより、プロセッサ11は、ステップS209の処理を実行する。具体的には、教示者Uは、領域G102に表示される各検出値をゼロにするよう、ハンド部33の位置を調整する。
【0108】
(ステップB5)
ステップB5において、領域G102に表示される各検出値がゼロになると、教示者Uは、操作装置50の確定ボタンを操作して調整処理を終了させる。これにより、プロセッサ11は、ステップS211を実行する。その結果、各検出値がゼロになったときのハンド部33の現在位置が、通過点として移動経路に挿入される。
【0109】
(ステップB6)
教示者Uは、ステップB1~B5を繰り返す。これにより、ロボット30の試験的な動作において凸型ワーク91に外力がかかる箇所が有る場合、教示者Uは、教示情報Dを修正することができる。
【0110】
<本実施形態の効果>
特許文献1に記載された技術では、力センサの出力値が所定範囲内であっても、想定外の要因等により、ロボット手先部が教示者の意に反して過大に動作する可能性がある。この場合、ロボットの近傍にいる教示者の安全性が十分に確保できないという課題がある。一方で、教示者の安全性が確保される遠隔教示法等は、直接教示法のように直感的に教示できないため、教示の容易性に課題があった。
【0111】
本実施形態は、ロボットに動作を教示する教示者の安全性を高めながら、教示者がより容易に教示を行うことができる技術を実現することができ、上述した課題を解決する。また、本実施形態は、教示者がより容易に教示を行うことができ、その結果、ロボットに対してより精度よく動作を教示することができる。
【0112】
具体的には、上述した本実施形態に係るロボット制御システム1を用いれば、教示者Uは、安全柵の外というより安全な環境にいながらも、ロボット30に動作を容易に教示することができる。その理由は、教示者Uは、画面G1により力覚センサ34の検出値をリアルタイムに確認できるので、凸型ワーク91が受ける外力をリアルタイムに把握できる。その結果、教示者Uは、直接教示のように凸型ワーク91が受ける外力を直感的に把握できなくても、当該外力をリアルタイムに把握しながら教示を行うことができるからである。
【0113】
また、本実施形態を用いれば、教示者Uは、画面G1を見ることで、力覚センサ34の各検出値と、ハンド部33の位置との関係を認識することができるため、教示の容易性がさらに向上する。例えば、教示者Uは、画面G1を見ながら操作することにより、力覚センサ34の各検出値がゼロになるハンド部33の位置を容易に見つけることができる。その結果、教示者Uは、凸型ワーク91に外力がかからない位置をハンド部33が通るよう、ロボット30に容易に教示することができる。
【0114】
また、例えば、本実施形態を用いることで、教示者Uは、教示を終了すべき適切な位置を容易に把握することができる。ここで、凹型ワーク92に凸型ワーク91を挿入する動作の教示を適切な位置で終了しないと、凸型ワーク91または凹型ワーク92が破損する可能性がある。例えば経験が浅い教示者Uが本実施形態を用いずに目視で遠隔から教示を行う場合、このような破損を発生させるか、または、このような破損の回避を優先して適切な位置より手前で教示を終了する可能性が高い。本実施形態を用いることにより、経験が浅い教示者Uであっても、画面G1において検出値Fzのみがゼロより大きくなった時点で、凸型ワーク91が適切な位置に到達したことを把握できる。その結果、経験が浅い教示者Uであっても、容易に適切な位置で教示を終了させることができる。
【0115】
より具体的には、教示者Uは、安全柵の外でというより安全な環境にいながらも、ロボット30に教示した移動経路を容易に修正することができる。その理由は、移動経路において凸型ワーク91に外力がかかる箇所がある場合に、教示者Uは、画面G1を見ながら当該箇所を修正できるからである。例えば、教示者Uは、画面G1を見ながら操作することにより、少なくとも何れかの検出値がゼロより大きくなる位置の周辺で、各検出値がゼロになる位置を容易に見つけることができる。その結果、教示者Uは、凸型ワーク91に外力がかかる箇所を通らないよう、移動経路を容易に修正することができる。
【0116】
例えば、本実施形態を用いることで、経験が浅い教示者Uであっても、教示時間を短縮することができる。ここで、経験が浅い教示者Uが本実施形態を用いずに目視で遠隔から教示を行う場合、移動経路の修正回数が多くなる可能性が高い。本実施形態では、経験の浅い教示者Uであっても、画面G1により凸型ワーク91にかかる外力をリアルタイムに確認しながら移動経路を修正できるので、より少ない修正回数でより適切な移動経路を得ることができる。その結果、経験の浅い教示者Uであっても、全体として教示時間を短縮することができる。
【0117】
また、本実施形態では、教示者Uによる教示中または試験的な動作中に力覚センサ34の何れかの検出値が閾値以上になると、ハンド部33の移動が停止する。これにより、ロボット30が想定外の動作をする可能性を低減できる。その結果、凸型ワーク91、凹型ワーク92、または、周囲の設備等が破損する可能性を低減できる。
【0118】
〔実施形態2〕
以下、本実施形態に係るロボット制御システム1Aについて、詳細に説明する。
【0119】
<ロボット制御システム1Aの概要>
実施形態1に係るロボット制御システム1は、教示者Uの操作に基づき生成した教示情報Dを、教示者Uの操作に基づいて修正していた。本実施形態に係るロボット制御システム1Aは、教示者Uの操作に基づき生成した教示情報Dを、力覚センサ34の各検出値を出力しながら教示者Uの操作によらずに修正する。
【0120】
<ロボット制御システム1Aの構成>
ロボット制御システム1Aの構成について、
図7を参照して説明する。
図7は、ロボット制御システム1Aの構成を示す模式図である。ロボット制御システム1Aは、実施形態1に係るロボット制御システム1とほぼ同様に構成されるが、専用コントローラ10に替えて専用コントローラ10Aを備える点が異なる。専用コントローラ10Aは、本発明における制御装置の一例である。ロボットコントローラ20、ロボット30、ディスプレイ40、操作装置50、凸型ワーク91、および凹型ワーク92の詳細については、実施形態1において説明した通りである。
【0121】
専用コントローラ10Aの詳細な構成については、
図2を参照して説明した専用コントローラ10とほぼ同様であるが、二次メモリ13に格納されるプログラムP1の詳細が異なる。プログラムP1は、プロセッサ11に、制御方法S1及び制御方法S3を実行させるためのプログラムである。
【0122】
<ロボット制御システム1Aが実行する制御方法>
ロボット制御システム1Aは、制御方法S1と、制御方法S3とを実行する。制御方法S1については、実施形態1で説明した通りである。制御方法S3は、教示情報Dに含まれる移動経路を、教示者Uの操作によらずに修正する方法である。
【0123】
<制御方法S3の流れ>
プロセッサ11が実行する制御方法S3について、
図8を参照して説明する。
図8は、制御方法S3の流れを示すフローチャートである。
図8に示すように、制御方法S3は、ステップS301からS309までを含む。
【0124】
ステップS301~S303の動作は、
図6を参照して説明した制御方法S2のステップS201~S203の動作と同様である。これにより、ハンド部33は、凸型ワーク91を、凹型ワーク92に挿入可能な向き(ここでは、凸部が下側となる向き)で把持しながら開始位置まで移動する。
【0125】
ステップS304の動作は、制御方法S2のステップS204の動作と同様である。なお、本ステップの動作は、特許請求の範囲に記載した移動処理の一例である。これにより、ハンド部33は、教示情報Dに含まれる最初の通過点、又は次の通過点まで移動する。後述するように当ステップが繰り返されることにより、ハンド部33は、教示情報Dが示す移動経路の始点から終点まで移動する。
【0126】
ステップS305の動作は、制御方法S2のステップS205の動作と同様である。これにより、ステップS304においてハンド部33が移動中の間、プロセッサ11は、力覚センサ34が検出した各検出値と、ハンド部33の位置を示す情報とを取得し、これらを関連付けて一次メモリ12に記憶する。また、ステップS205と同様に、ハンド部33の向きが可変である場合、プロセッサ11は、さらにハンド部33の向きを示す情報を取得し、力覚センサ34の各検出値に関連付けて一次メモリ12に記憶してもよい。
【0127】
ステップS306において、プロセッサ11は、ハンド部33の位置が、教示情報Dが示す移動経路の終点であるか否かを判断する。
【0128】
ステップS306でNoの場合、プロセッサ11は、ステップS304~S305の動作を繰り返す。ステップS304~S305の動作を繰り返すことにより、一次メモリ12には、移動経路に含まれる各点における力覚センサ34の各検出値が蓄積される。なお、移動経路に含まれる点とは、教示情報Dに含まれる通過点、又は、隣接する2つの通過点を結ぶ経路上の点である。ステップS306でYesの場合、プロセッサ11は、次のS307の動作を実行する。
【0129】
ステップS307において、プロセッサ11は、一次メモリ12に記憶した力覚センサ34の各検出値のうち、閾値以上のものがあるか否かを判断する。ここで、閾値は、力覚センサ34の検出値Fx,Fy,Fz,Mx,My,Mzのそれぞれについて定められている。各検出値の閾値は、制御方法S1のステップS107又は制御方法S2のステップS207で用いる閾値と同じであってもよいし、異なっていてもよい。例えば、各検出値の閾値として、制御方法S1のステップS107で用いた閾値より小さな値が用いられる。これにより、教示者Uの操作に基づき生成した教示情報Dを、さらに小さな閾値を用いて教示者Uの操作によらずにより精度よく修正することが可能となる。
【0130】
ステップS307でYesと判断された場合、ステップS308において、プロセッサ11は、力覚センサ34の各検出値を参照して、移動経路を修正する。具体的には、プロセッサ11は、閾値以上となった検出値を参照して、教示情報Dが示す移動経路を修正する。具体的には、例えば、プロセッサ11は、教示情報Dに含まれる通過点のうち、閾値以上となった検出値に関連付けられた位置の近傍の通過点を少なくとも1つ特定する。また、プロセッサ11は、特定した通過点の位置を、検出値が閾値以上となった程度に応じて修正する。これにより、教示情報Dが示す移動経路が修正される。例えば、プロセッサ11は、検出値Fxが閾値以上となった位置の近傍の通過点の位置のx座標を修正する。また、例えば、プロセッサ11は、Mxが閾値以上となった位置の近傍の通過点におけるハンド部33のx軸回りの向きを修正する。このように、プロセッサ11は、6つの検出値の少なくとも何れかが閾値以上となった各位置について、その近傍の通過点の位置を修正する。ここで、検出値が閾値以上となった位置と、修正すべき通過点とは、1対1に対応していなくてよい。例えば、プロセッサ11は、検出値が閾値以上となった1つの位置に対して、複数の通過点の位置を修正してもよい。また、例えば、プロセッサ11は、検出値が閾値以上となった複数の位置(例えば、移動経路上で検出値が閾値以上となった範囲)に対して、1つの通過点の位置を修正してもよい。また、例えば、プロセッサ11は、検出値が閾値以上となった位置の近傍に、新たな通過点を追加してもよい。
【0131】
プロセッサ11は、このようにして、教示情報Dが示す移動経路を修正すると、一次メモリ12に記憶した力覚センサ34の各検出値を削除してから、ステップS304からの処理を繰り返す。これにより、修正後の移動経路に沿ってハンド部33が移動し、移動中に力覚センサ34が検出した検出値が閾値以上となった場合、さらに移動経路が修正される。
【0132】
ステップS307においてNoと判断された場合、ステップS309において、プロセッサ11は、修正後の移動経路に応じた教示情報Dを生成する。具体的には、プロセッサ11は、修正後の移動経路を含む教示情報Dを出力する。
【0133】
<本実施形態の効果>
本実施形態は、ロボット30により精度よく動作を教示するための教示情報Dを生成することができる。その理由について以下に説明する。
例えば、制御方法S1によって教示者Uの操作により生成した教示情報Dが示す移動経路は、必ずしも教示時にハンド部33が移動した経路と一致するとは限らない。例えば、通過点PkからPk+1までの教示時の移動経路が直線的でない場合であっても、教示情報Dが示す通過点PkからPk+1までの移動経路は直線的になり、これらは一致しない。このため、力覚センサ34の各検出値は、教示情報Dを生成した教示時には閾値以上とならない場合でも、教示情報Dが示す移動経路に沿ってハンド部33を移動させる場合に閾値以上となる可能性がある。
【0134】
そこで、本実施形態は、教示者Uの操作により生成した教示情報Dが示す移動経路に沿ってハンド部33を移動させ、移動中に力覚センサ34が検出した各検出値を参照して移動経路を修正する。より具体的には、本実施形態は、移動中に力覚センサ34が検出した各検出値が閾値以上となる場合に移動経路を修正する。このようにして修正した移動経路に応じた教示情報Dは、力覚センサ34の各検出値がより適切な値となる移動経路を示す。その結果、本実施形態により生成した教示情報Dを用いることにより、ロボット30により精度よく動作を教示することができる。
【0135】
〔変形例〕
各実施形態において、プロセッサ11は、レベル記録処理をさらに実行してもよい。ここで、レベル記録処理とは、教示者Uによる教示のレベルを示すレベル情報を、修正処理の実行履歴に基づいて記録する処理である。例えば、プロセッサ11は、教示者Uの識別情報に関連付けてレベル情報を二次メモリ13に記憶する。また、例えば、レベル情報は、調整処理の実行回数が少ないほどレベルが高いことを示すものであってもよい。このように変形することにより、各実施形態は、教示者Uの教示のレベルを管理することができる。
【0136】
また、各実施形態において、ディスプレイ40の代わりに、その他の出力装置を用いてもよい。例えば、出力装置の例としては、スピーカ、LED(light emitting diode)ランプ等が挙げられる。例えば、プロセッサ11は、第1出力処理および第2出力処理において、力覚センサ34の検出値に応じた音声をスピーカから出力してもよい。一例として、プロセッサ11は、検出値が所定条件を満たす(例えば、何れかの検出値が閾値以上になる)場合、警告音をスピーカから出力する。また、例えば、プロセッサ11は、第1出力処理および第2出力処理において、力覚センサ34の検出値に応じてLEDランプを点灯させる。一例として、プロセッサ11は、検出値が所定条件を満たす(例えば、何れかの検出値が閾値以上になる)場合、LEDランプを点灯させる。
【0137】
また、各実施形態において、ハンド部33の代わりに、その他のエンドエフェクタを用いてもよい。例えば、エンドエフェクタの例としては、レーザ加工を行うエンドエフェクタが挙げられる。また、ハンド部33が有する指部の数は、2本に限らず、3本以上であってもよい。
【0138】
また、各実施形態において、アーム部32における関節の数は3つに限定されない。例えば、アーム部32は、2本のアームを1つの関節で連結した関節アームであってもよいし、3本又は5本以上のアームを2つまたは4つ以上の関節で連結した多関節アームであってもよい。
【0139】
また、各実施形態において、プロセッサ11が第1停止処理または第2停止処理を行うか否かを判断する所定条件として、力覚センサ34の各検出値のうち少なくとも何れかの検出値が閾値を超えるとの条件を適用する例について説明した。ただし、本実施形態における所定条件は、上述した条件に限られず、エンドエフェクタに適切でない外力が付与されていることを示す条件であればよい。所定条件は、適用するエンドエフェクタの種類、エンドエフェクタによって行う作業の種類、またはエンドエフェクタが作業の対象とするワークの種類等に応じて事前に定められる。
【0140】
また、各実施形態において、教示者Uは、力覚センサ34の各検出値がゼロになるように教示を行う例について説明した。ただし、力覚センサ34の各検出値の適切な値はゼロに限られない。適切な値は、適用するエンドエフェクタの種類、エンドエフェクタによって行う作業の種類、またはエンドエフェクタが作業の対象とするワークの種類等に応じた値である。教示者Uは、力覚センサの各検出値が適切な値に近づくよう教示を行えばよい。
【0141】
また、各実施形態において、力覚センサ34は、アーム部32またはハンド部33に内蔵されていてもよい。また、力覚センサ34は、アーム部32またはハンド部33と一体に形成されていてもよい。
【0142】
また、各実施形態において、力覚センサ34は、必ずしも6軸全ての成分を検出するものでなくてもよい。
【0143】
また、各実施形態において、操作装置50は、方向ボタンおよび確定ボタンを有する構成に限定されない。操作装置50は、少なくともハンド部33を移動させる操作を受け付けるための操作部を有していればよい。
【0144】
また、各実施形態において、専用コントローラ10は、ロボットコントローラ20が実行する処理の一部を実行してもよい。また、ロボットコントローラ20は、専用コントローラ10が実行する処理の一部を実行してもよい。この場合、本発明における制御装置は、複数のプロセッサ11およびプロセッサ21を備える。また、この場合、本発明における制御方法は、複数のプロセッサ11およびプロセッサ21が実行する。また、専用コントローラ10およびロボットコントローラ20は、一体に形成されていてもよい。
【0145】
また、実施形態2において、専用コントローラ10Aは、制御方法S1を実行せずに制御方法S2を実行してもよい。この場合、例えば、専用コントローラ10Aは、外部から取得した教示情報Dに対して制御方法S2を実行することにより、当該教示情報Dが示す移動経路を修正する。この場合、ロボット制御システム1Aは、ディスプレイ40及び操作装置50を含んでいなくてもよい。
【0146】
〔まとめ〕
態様1に係る制御装置は、ロボットを制御する制御装置であって、1または複数のプロセッサを備える。前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたエンドエフェクタとを含む。前記1または複数のプロセッサは、移動処理と、生成処理とを実行する。移動処理は、前記エンドエフェクタを移動させる処理である。生成処理は、前記力覚センサの検出値を参照して、前記エンドエフェクタの移動経路に応じた教示情報を生成する処理である。
を実行する。
【0147】
上記構成により、ロボットに対してより精度よく動作を教示することができる。
【0148】
態様2に係る制御装置は、態様1に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様2に係る制御装置において、前記生成処理は、前記力覚センサの検出値を参照して前記エンドエフェクタの移動経路を修正し、修正後の移動経路に応じた前記教示情報を生成する。
【0149】
上記構成により、教示情報を用いることにより、ロボットにより精度よく動作を教示することができる。
【0150】
態様3に係る制御装置は、態様1に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様3に係る制御装置において、前記1または複数のプロセッサは、第1出力処理と、第1移動処理夜を実行する。第1出力処理は、前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する。前記移動処理は、操作装置に対する教示者の操作に基づいて前記エンドエフェクタを移動させる。また、前記生成処理は、前記第1移動処理における前記エンドエフェクタの移動経路を示す情報を前記教示情報として生成する。
【0151】
上記構成により、ロボットに動作を教示する教示者の安全性を高めながら、教示者がより容易に教示を行うことができる。その理由の1つは、教示者が操作装置を操作する場所が、ロボットから離れた場所であってもよいからである。また、他の理由は、教示者は、力覚センサの検出値が出力されることにより、エンドエフェクタが受ける外力をリアルタイムに把握しながら動作を教示できるからである。これにより、教示者は、直接教示のようにエンドエフェクタが受ける外力を直感的に把握できなくても、容易に教示を行うことができる。
【0152】
態様4に係る制御装置は、態様3に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様4に係る制御装置において、前記出力装置はディスプレイである。前記1または複数のプロセッサは、前記第1出力処理において、前記エンドエフェクタに対応するオブジェクトを配置した仮想空間を示す画像と、前記エンドエフェクタが当該現実の位置にあるときの前記検出値を示す情報とを前記ディスプレイに表示する。前記仮想空間は、前記エンドエフェクタの現実の位置に対応する仮想位置に前記オブジェクトを配置した仮想空間である。
【0153】
上記構成により、教示者は、より容易に教示を行うことができる。その理由は、教示者は、上述した仮想空間の画像と、上述した検出値を示す情報とを同時に視認することにより、ハンド部の位置と、力覚センサの検出値とを紐付けて認識することができるからである。これにより、教示者は、力覚センサの検出値が適切になるようなハンド部の位置を容易に見つけることができ、教示の容易性が向上する。
【0154】
態様5に係る制御装置は、態様3または態様4に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様5に係る制御装置において、前記1または複数のプロセッサは、前記第1移動処理による前記エンドエフェクタの移動中に前記検出値が所定条件を満たすことを検知すると、前記エンドエフェクタの移動を停止させる第1停止処理をさらに実行する。
【0155】
上記構成により、専用コントローラは、教示中に、力覚センサの検出値が所定条件(閾値を超える)を満たすような動作をロボットが行うことを低減できる。例えば、ロボットが過大な動作を行った場合の検出値を判断するよう所定条件(閾値)を定めておくことにより、ロボットによる作業の対象物、またはロボット周辺にある施設が破損する可能性を低減できる。
【0156】
態様6に係る制御装置は、態様3から態様5の何れか1態様に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様6に係る制御装置において、前記1または複数のプロセッサは、記憶処理と、第2移動処理と、第2停止処理と、調整処理と、第2出力処理と、修正処理と、をさらに実行する。記憶処理は、前記第1移動処理による前記エンドエフェクタの移動経路を示す教示情報をメモリに記憶する処理である。第2移動処理は、前記教示情報が示す移動経路に沿って、前記エンドエフェクタを移動させる処理である。第2停止処理は、前記第2移動処理による前記エンドエフェクタの移動中に前記検出値が所定条件を満たすことを検知すると、前記エンドエフェクタの移動を停止させる処理である。調整処理は、前記操作装置に対する前記教示者の操作に基づいて、前記エンドエフェクタの位置を、前記第2停止処理により停止した位置から調整する処理である。第2出力処理は、前記調整処理による前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する処理である。修正処理は、前記調整処理によって調整された位置に基づいて前記教示情報を修正する処理である。
【0157】
上記構成により、教示者は、ロボットに教示した動作をより容易に修正することができる。その理由は、教示者は、教示した動作において力覚センサの検出値が適切でない箇所がある場合には、ハンド部が受ける外力をリアルタイムに把握しながら、教示した動作を修正できるからである。これにより、教示者は、直接教示のようにハンド部が受ける外力を直感的に把握できなくても、教示した動作を容易に修正することができる。
【0158】
態様7に係る制御装置は、態様6に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様7に係る制御装置において、前記1または複数のプロセッサは、レベル記録処理をさらに実行する。レベル記録処理は、前記教示者による教示のレベルを示すレベル情報を、前記修正処理の実行履歴に基づいて記録する処理である。
【0159】
上記構成により、教示者の教示のレベルを管理することができる。
【0160】
態様8に係るロボット制御システムは、態様3から態様7の何れか1態様に係る制御装置と、前記ロボットと、前記操作装置と、前記出力装置と、を含む。
【0161】
上記構成により、態様3に係る制御装置と同様の効果を奏する。
【0162】
態様9に係るプログラムは、態様1から態様7の何れか1態様に係る制御装置を動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させる。
【0163】
上記構成により、態様1に係る制御装置と同様の効果を奏する。
【0164】
態様10に係る制御方法は、1または複数のプロセッサがロボットを制御する制御方法であり、移動ステップと、生成ステップと、を含む。前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたエンドエフェクタとを含む。移動ステップにおいて、前記1または複数のプロセッサは、エンドエフェクタを移動させる。生成ステップにおいて、前記1または複数のプロセッサは、前記力覚センサの検出値を参照して、前記エンドエフェクタの移動経路に応じた教示情報を生成する。
【0165】
上記構成により、態様1に係る制御装置と同様の効果を奏する。
【0166】
態様11に係る制御方法は、態様11に係る制御方法において、前記生成ステップでは、前記1または複数のプロセッサが、前記力覚センサの検出値を参照して前記エンドエフェクタの移動経路を修正し、修正後の移動経路に応じた前記教示情報を生成する。
【0167】
上記構成により、態様2に係る制御装置と同様の効果を奏する。
【0168】
態様12に係る制御方法は、態様11に係る制御方法において、前記1または複数のプロセッサが、前記エンドエフェクタの移動中、前記力覚センサの検出値を示す情報をリアルタイムに出力装置に出力する第1出力ステップをさらに含み、前記移動ステップは、前記1または複数のプロセッサが、操作装置に対する教示者の操作に基づいてエンドエフェクタを移動させる第1移動ステップを含み、前記生成ステップでは、前記1または複数のプロセッサが、第1移動ステップにおける前記エンドエフェクタの移動経路を示す情報を前記教示情報として生成する。
【0169】
上記構成により、態様3に係る制御装置と同様の効果を奏する。
【符号の説明】
【0170】
1 ロボット制御システム
10 専用コントローラ
20 ロボットコントローラ
11、21 プロセッサ
12、22 一次メモリ
13、23 二次メモリ
14、24 通信インタフェース
15、25 入出力インタフェース
30 ロボット
31 台座
32 アーム部
33 ハンド部
34 力覚センサ
40 ディスプレイ
50 操作装置
91 凸型ワーク
92 凹型ワーク