(57)【要約】【課題】教示時に安全で操作感が良く、作業軌跡を生成できる、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路を提供する。【解決手段】ロボット１０１０Ａが測定精度が悪い状態にあるときには、操作部１０２０を振動させることで人に通知するか、精度を要しない作業しか完成できない状況を構築するかをしておき、その間に、測定精度が良い状態になるようにロボット１０１０Ａを移動する。【選択図】図１５
2013071231.tif 000002
【特許請求の範囲】
【請求項１】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置。
【請求項２】
前記相対位置測定部が測定した前記相対位置が前記所定範囲内に入るように、前記ロボットアームを移動させる移動量を決定する移動量決定部と、
前記移動量決定部が決定した前記移動量に基づいて前記ロボットアームを移動させる制御を行う教示制御部とをさらに備える、
請求項１に記載のロボットアームの教示装置。
【請求項３】
前記操作部の位置を取得する第二測定部をさらに備え、
前記相対位置測定部が前記相対位置を取得できなかった場合、前記移動量決定部は、前記第二測定部が測定した前記操作部の位置に基づいて前記移動量を決定し、
前記所定範囲は、前記相対位置測定部によって前記相対位置を取得できる範囲である、
請求項１又は２に記載のロボットアームの教示装置。
【請求項４】
請求項１〜３のいずれか１つに記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置。
【請求項５】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法。
【請求項６】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置。
【請求項７】
コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラム。
【請求項８】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームの軌跡を教示するロボットアームの教示装置、教示方法、教示した軌跡に基づいてロボットアームを動作させるロボット装置、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路に関する。より具体的には、本発明は、ダイレクトティーチングによるロボットアームの軌跡を教示するか、又は、マスタースレーブによるロボットアームの軌跡の教示するロボットアームの教示装置、教示方法、教示した軌跡に基づいてロボットアームを動作させるロボット装置、ロボットアームの制御プログラム、並びに、集積電子回路に関する。
【背景技術】
【０００２】
従来、製造現場でロボットが使われてきた。ロボットを使用する際には、ロボットに作業の軌跡を教える教示作業が必要になる。通常、教示はティーチングペンダント又はプログラミングを用いて行われてきた。少品種大量生産時代においては、教示した軌跡は長期間に渡って使用する。よって、教示に時間又は人件費等のコストがかかったとしても、１台の生産物当たりにすると教示のコストは低く、教示のコストが問題になりにくかった。
【０００３】
今日の製造現場では製品の付加価値向上のために、多品種少量生産又は頻繁なモデルチェンジへの対応が求められる。その対応方法としてセル生産は有効である。セル生産で行われる作業には、ネジ締め作業、部品の嵌合作業、装着作業、又は、フレキシブル基板などの挿入作業、研磨作業などの多様な作業がある。また、セル生産では、生産する対象物が変わるごとに、又は、生産に使われる部品が変わるごとに、作業を行う位置又は向き、又は、作業を行う順番が変わるため複雑な対応が求められる。
【０００４】
ロボットを用いてセル生産で行う作業を自動化しようとする場合、このような作業をロボットに教示しなければならない。しかし、その対象となる作業があまりに多様で複雑であるため、ティーチングペンダント又はプログラミングを用いる方法では限界がある。そこで、より簡単に、また低コストでロボットに教示を行う方法が求められる。
【０００５】
ダイレクトティーチングは、ロボットに作業を簡単に教示することができる方法であり、複雑で多様な作業をロボットに教示する際に有効な方法である。ダイレクトティーチングでは、ロボットの操作部に人が加えた力に基づいて、ロボットの移動量及び移動方向を決定してロボットを移動する。そして、移動軌跡を教示データとして保持する。動作の再生時には教示データの移動軌跡を再現する。
【０００６】
さて、フレキシブル基板のような柔軟物の挿入作業を行う際、作業者は柔軟物がたわむときに手に伝わる反力によって、柔軟物のたわみ具合又は位置を推測し、それによって複雑な作業を行う。フレキシブル基板の挿入に限らず、部品の嵌合作業のような細かい作業においても、操作者は手に伝わる反力によってその作業の状況を推測し、複雑な作業を行う。このように作業を行う際に、人が手にした部品から伝わる反力を感じることができることは重要である。
【０００７】
ところで、ダイレクトティーチングでは、人がロボットを掴み、ロボットが部品を挟む。部品からの反力がロボットで吸収された場合、人は部品からの反力を感じることができない。特に、産業用ロボットなど重たいロボットでは、部品からの反力又は部品からの反力がロボットで吸収される場合が多い。この場合、ダイレクトティーチング時に、フレキシブル基板の挿入のような複雑な作業を達成することが困難になる。
【０００８】
また、ダイレクトティーチングでは、人が加えた力に基づいてロボットが移動するが、思い通りにロボットを移動できる訳ではない。ロボットの動作は、ロボットの制御プログラムによってもたらさせたものであり、また、ロボットの重量、大きさ、又は、モータの回転性能等に基づく物理的な制約を受けたものになる（なお、サーボオフで動作する場合であっても、ロボットの自重による制約は受ける。）。これらの制約によって、人が加えた力が意図通りにロボットの動作に反映されるわけではない。よって、ロボットを介さずに通常の状況で作業をする場合に比べて、ダイレクトティーチングを行う際の教示作業では、人は思ったような作業をすることができず複雑な作業を達成することが困難になる。
【０００９】
このように、ダイレクトティーチングでは人がロボットを移動して操作を行うが、その際の操作性が悪くなり複雑な作業を達成することが困難になる。
【００１０】
この問題に対して、ロボット本体から、人が操作する際に握るロボットの操作部が、ある程度自由に動くようにして、操作性を向上する取り組みが行われている。
【００１１】
特許文献１では、ロボットアームの手先の先端部に、ばねで、操作部が取り付けられた構成が提案されている。この方法では、操作部は、ある程度自由に動くことができるが、ばねによって拘束される範囲を超えて移動することはできない。
【００１２】
一方、マスタースレーブは、ロボットの遠隔操作の方式である。教示時にマスターの動きに合わせてスレーブを動作させる。マスターロボットの操作部に人が加えた力に基づいて、マスターロボットも移動するし、スレーブ機も移動する（マスターロボットで教示した軌跡が、教示と同時にスレーブ機で再生させるとも言える。）。すなわち、マスターロボットを用いて軌跡の教示を行い、スレーブ機で教示した軌跡の再生を行が行われる。マスタースレーブにおいても、ダイレクトティーチングと同様に、作業の操作感が悪いと、人は思ったような作業をすることができず、複雑な作業を達成することが困難になる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平４−１６４５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ダイレクトティーチング又はマスタースレーブ等で、ロボットに作業を教示する際、操作感が悪いと、複雑な作業を教示することが困難であるという課題がある。そこで、教示時に安全で操作感が良いロボットが求められる。また、安全で操作感良く作業軌跡を生成できるロボット装置が求められる。
【００１５】
本発明の目的は、教示時に安全で操作感が良く、作業軌跡を生成できる、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路を提供することにある。
【課題を解決するための手段】
【００１６】
前記目的を達成するために、本発明は以下のように構成する。
【００１７】
本発明の１つの態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置を提供する。
【００１８】
本発明の別の態様によれば、前記態様に記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置を提供する。
【００１９】
本発明の第５態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法を提供する。
【００２０】
本発明のまた別の態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置を提供する。
【００２１】
本発明のさらに別の態様によれば、コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラムを提供する。
【００２２】
本発明のさらに別の態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路を提供する。
【発明の効果】
【００２３】
本発明のロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路によれば、教示時に安全で操作感が良く、教示用の作業軌跡の生成を行うことができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態に対する比較例の構成において、ロボットと操作部とを分離した構成における、教示時のロボット装置の構成を示す図。
【図２】前記比較例の構成において、ロボットと操作部とを分離した構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図３】前記比較例の構成における、ロボットアームの追従を模式的に示す図
【図４】前記比較例の構成における、追従した軌跡を再生するときのロボットアームの追従を模式的に示す図
【図５】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部を示す斜視図
【図６】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部の縦断面を示す図
【図７】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部に第一センサと、操作部を固定したときの断面を示す図
【図８】前記比較例の構成において、ロボットと操作部とを分離した構成における、特徴点を示す図
【図９】前記比較例の構成において、ロボットと操作部とを分離した構成における、絶対位置取得部が行う絶対位置取得処理の流れを示すフローチャート
【図１０】前記比較例の構成において、ロボットと操作部とを分離した構成における、ロボットアームの手先の位置を示す図
【図１１】前記比較例の構成において、ロボットと操作部とを分離した構成における、ロボットアームの手先に対する操作部の位置を示す図
【図１２】前記比較例の構成において、第一相対位置算出部が行う第一相対位置算出処理の流れを示すフローチャート
【図１３】前記比較例の構成において、ロボットと操作部とを分離した構成における、操作部が、ある位置にあるときのロボットの姿勢を示す図
【図１４】前記比較例の構成において、ロボットと操作部とを分離した構成における、操作部が、別のある位置にあるときのロボットの姿勢を示す図
【図１５】本発明の第１実施形態の構成における、教示時のロボット装置の構成を示す図。
【図１６】第１実施形態の構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図１７】第１実施形態の構成における、判定部が行う判定処理の流れを示すフローチャート
【図１８】第１実施形態の構成における、教示制御部が行う教示制御処理の流れを示すフローチャート
【図１９Ａ】第１実施形態の第１変形例の構成における、教示時のロボット装置の構成を示す図。
【図１９Ｂ】第１実施形態の構成における、絶対位置取得部が行う絶対位置取得処理の流れを示すフローチャート
【図２０】第２実施形態の構成における、教示時のロボット装置の構成を示す図。
【図２１】第２実施形態の構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図２２】第２実施形態の構成における、判定部が行う判定処理の流れを示すフローチャート
【発明を実施するための形態】
【００２５】
以下に、本発明にかかる実施の形態実施形態を図面に基づいて詳細に説明する。
【００２６】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００２７】
本発明の第１態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置を提供する。
【００２８】
本発明の第２態様によれば、前記相対位置測定部が測定した前記相対位置が前記所定範囲内に入るように、前記ロボットアームを移動させる移動量を決定する移動量決定部と、
前記移動量決定部が決定した前記移動量に基づいて前記ロボットアームを移動させる制御を行う教示制御部とをさらに備える、
第１の態様に記載のロボットアームの教示装置を提供する。
【００２９】
本発明の第３態様によれば、前記操作部の位置を取得する第二測定部をさらに備え、
前記相対位置測定部が前記相対位置を取得できなかった場合、前記移動量決定部は、前記第二測定部が測定した前記操作部の位置に基づいて前記移動量を決定し、
前記所定範囲は、前記相対位置測定部によって前記相対位置を取得できる範囲である、
第１又は２の態様に記載のロボットアームの教示装置を提供する。
【００３０】
本発明の第４態様によれば、第１〜３のいずれか１つの態様に記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置を提供する。
【００３１】
本発明の第５態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法を提供する。
【００３２】
本発明の第６態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置を提供する。
【００３３】
本発明の第７態様によれば、コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラムを提供する。
【００３４】
本発明の第８態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路を提供する。
【００３５】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００３６】
各実施形態を説明するのに先立って、まず、ダイレクトティーチングを行うロボット装置において、ロボットと操作部とを分離する構成を比較例の構成として＜ロボットアームと操作部とを分離した構成＞の欄で説明する。次に、この比較例の構成の課題を説明し、その後にその課題を解決するための各実施形態の構成を説明する。
【００３７】
＜ロボットアームと操作部とを分離した構成＞
ロボットのロボット本体の一例であるロボットアームと操作部とを物理的に分離し、操作感良く教示を行うことができる構成（比較例の構成）を、図１及び図２を用いて説明する。図１は、教示時におけるロボット装置１０００を示す図であり、図２は、教示した軌跡を再生するときのロボット装置１０００を示す図である。
【００３８】
ロボット装置１０００の概要を説明する。ロボット装置１０００は、主に、ロボット１０１０と、操作部１０２０とで大略構成されている。ロボット１０１０は、ロボット本体の一例であるロボットアーム１００と、制御部１０１とで構成されている。
【００３９】
教示時には、ロボット１０１０のロボットアーム１００と、操作部１０２０とは分離しており、操作者は操作部１０２０を手で掴んで操作する。
【００４０】
教示した軌跡を再生するときには、図２に示すように操作部１０２０は、ロボット１０１０のロボットアーム１００の手先１０１１に固定される。固定されることによって、操作部１０２０に対してロボットアーム１００の手先１０１１は、操作部１０２０に対して、常に、所定範囲内の位置、すなわち、一定の相対位置を保つ。この相対位置を「第一の相対位置」と呼ぶことにする。再生時には、ロボットアーム１００が移動しても、操作部１０２０に対する手先１０１１の位置は常に一定の範囲内の位置となる。
【００４１】
教示時には、ロボットアーム１００は操作部１０２０に追従して移動する。その際、操作部１０２０に対してロボットアーム１００の手先１０１１の相対位置が、所定範囲内の位置、すなわち、第一の相対位置となるように追従する。例えば、ロボットアーム１００の動きを模式的に示した図３において、操作部１０２０が、位置１０２０ＰＡから位置１０２０ＰＢに移動した場合、ロボットアーム１００は、位置１０１０ＰＡから位置１０１０ＰＢに移動する。図４は、図３の軌跡を再生するときのロボットアーム１００を示す図である。
【００４２】
このような構成では、操作部１０２０は、ロボットアーム１００から分離して移動するこができる。よって、操作者は、操作感良く、操作部１０２０の操作を行うことができる。
【００４３】
図３の教示時においては、操作部１０２０とロボットアーム１００とは分離していたが、図４の再生時には、操作部１０２０とロボットアーム１００とは、固定部１１２０によって固定される。再生時には、ロボットアーム１００は、位置１０１０ＰＣから位置１０１０ＰＤに移動する。また、操作部１０２０は、位置１０２０ＰＣから位置１０２０ＰＤに移動する。
【００４４】
このような構成では、再生時にロボットアーム１００は、教示時ロボットアーム１００と同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム１００が周囲の物体と干渉するような姿勢をとっていないかを確認して、操作者がロボットアーム１００の軌跡を作っていけば、再生時にも、ロボットアーム１００が周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム１００が移動する。
【００４５】
ここで、「ほぼ」としたのは、若干、教示時のロボットアーム１００の軌跡と再生時のロボットアーム１００の軌跡がずれる場合があるためである。教示時に、ロボットアーム１００の手先１０１１は、操作部１０２０に追従して移動するが、完全に追従ができるわけではない。操作部１０２０が急激に移動した場合には、ロボットアーム１００の追従が追いつけなかったり、ロボットアーム１００の制御上の制約によってロボットアーム１００が振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【００４６】
以下、ロボット装置１０００をより具体的に説明する。ロボット装置１０００は、ロボット１０１０と、操作部１０２０と、固定部１１２０とで構成されている。更に、ロボット１０１０は、ロボットアーム１００と、相対位置測定部の一例としての第一センサ１０９０と、第一測定部１０３０と、教示制御部１０５０と、軌跡生成部１０８０と、モータ１０９８と、エンコーダ１０９９と、位置情報取得部１０９１と、絶対位置取得部１０９６と、再生制御部１１３０と、移動量決定部の一例としての第一相対位置算出部１０４０とで構成されている。
【００４７】
操作部１０２０は、操作者が直接手で持って移動させる部材である。操作者は、教示したい軌跡に沿って操作部１０２０を動かすことで教示を行う。この比較例の構成の事例では、操作部１０２０の形状は、一例として、１２ｃｍ×３ｃｍ×３ｃｍの直方体である。図２の向きでは、操作部１０２０のＸ方向、Ｙ方向、及び、Ｚ方向の長さがそれぞれ、１２ｃｍ、３ｃｍ、及び、３ｃｍの直方体である。操作部１０２０の先端（図２においては、操作部１０２０の右端。すなわち、操作部１０２０の固定部１１２０で固定されない側の端）には、フレキシブルテーブル、又は、ネジなどの部品（作業対象）を固定する。
【００４８】
図１には、立方体の部品９０がハンド９１で固定された場合を示している。なお、操作部１０２０は、操作者が直接移動できればよく、例えば、操作者の腕、又は、手、又は、指に縛りつけることによって、直接、手で持たずに移動する構成であっても構わない。また、操作部１０２０は、操作者の手に装着する手袋に固定されているような構成であっても構わない。
【００４９】
ロボットアーム１００は、操作部１０２０に対して手先１０１１が第一の相対位置になるように移動するロボット本体である。ロボット本体の具体的な例としては、ロボットアームである。また、手先１０１１は、ロボットアーム１００を制御することで移動する部分である。具体的には、例えば、ロボットアーム１００の先端である。
【００５０】
第一センサ１０９０は、手先１０１１に固定されて、操作部１０２０に対する手先１０１１の相対位置を取得する際に使用するセンサである。本構成では、第一センサ１０９０が、一例として、手先１０１１に固定されたカメラである場合について説明する。第一センサ１０９０は、具体的には、例えば、２０４８画素×２０４８画素を有するＣＣＤカメラである。本構成では、カメラで取得した画像に対して、後述の第一測定部１０３０における画像処理を施すことで手先１０１１に対する操作部１０２０の相対位置の取得を行う。
【００５１】
よって、第一センサ１０９０は、手先１０１１に対する操作部１０２０の相対位置の取得部の一例である。ここでは、第一センサ１０９０の外形は、一例として、２ｃｍ×２ｃｍ×２ｃｍとする。図２の向きでは、一例として、Ｘ、Ｙ、Ｚ方向の長さが各々２ｃｍの立方体とする。また、カメラが撮影する向きは、図２のＸ方向のプラス側の向きとする。
【００５２】
固定部１１２０は、ロボットアーム１００の手先１０１１に対して操作部１０２０を所定の相対位置になるように固定する部材である。本構成では、第一センサ１０９０は手先１０１１に固定されている。よって、第一センサ１０９０に対して操作部１０２０を固定部１１２０で手先１０１１に固定することで、ロボットアーム１００の手先１０１１に対して操作部１０２０を固定部１１２０で固定する。説明を簡単にするために、第一センサ１０９０と操作部１０２０とを、それぞれ固定部１１２０のそれぞれの端部にはめ込んで固定する構成を説明する。
【００５３】
図５は、固定部１１２０を示す斜視図である。図６は、固定部１１２０の面２０１１に対する断面を示す図である。固定部１１２０の外形は、一例として、１０ｃｍ×５ｃｍ×５ｃｍの直方体である。図２及び図５では、Ｘ方向、Ｙ方向、Ｚ方向の長さがそれぞれ、１０ｃｍ、５ｃｍ、５ｃｍの直方体である。
【００５４】
固定部１１２０のＸ方向のプラス側（図６の右端）には、操作部１０２０をねじ込む第１穴１１２０ａが設けられている。第１穴１１２０ａの大きさは、操作部１０２０の外形の大きさである。すなわち、一例として、図２の操作部１０２０のＹ方向及びＺ方向の長さである３ｃｍ×３ｃｍに合わせて設けられている。図６における点２０１２から点２０１４までの距離は３ｃｍである。また、第１穴１１２０ａに操作部１０２０をねじ込む深さは２ｃｍとなっている。図６における点２０１２から点２０１３までの距離ｔ１は２ｃｍである。第１穴１１２０ａの周りには、はめ込んだものが落ちないように柔軟物であるゴム９２が張られている。図６で斜線の部分は、ゴムが張られる範囲である。
【００５５】
固定部１１２０のＸ方向でマイナス側（図６の左端）には、第一センサ１０９０をねじ込む第２穴１１２０ｂが設けられている。第２穴１１２０ｂの大きさは第一センサ１０９０の外形の大きさである。すなわち、図２の第一センサ１０２０のＹ方向及びＺ方向の長さである２ｃｍ×２ｃｍに合わせて設けられている。図６における点２０１５から点２０１６までの距離ｔ２は２ｃｍである。また、第２穴１１２０ｂに第一センサ１０９０をねじ込む深さは２ｃｍとなっている。
【００５６】
図６における点２０１５から点２０１７までの距離は２ｃｍである。第２穴１１２０ｂの周りには、ねじ込んだものが落ちないように柔軟物であるゴム９２が張られている。図７は、固定部１１２０の第２穴１１２０ｂに第一センサ１０９０を固定するとともに、第１穴１１２０ａに操作部１０２０を固定したときの断面図を示す。図７において、点７０１０はロボットアーム１００の手先１０１１の中心の位置（この発明では、手先１０１１の位置というときは、代表例として、手先１０１１の中心の位置のことを指すものとする。）を示す。点８０１１は、操作部１０２０の中心の位置を示す。このときの点７０１０と点８０１１の距離は、一例として１３ｃｍである。これは、
【００５７】
（数１）
｛（固定部１１２０のＸ方向の長さ）＋（操作部１０２０のＸ方向の半分の長さ）−（重複分の長さ）｝
．．．．．．．（式１）
によって算出した長さであり、具体的には、１０＋５−２＝１３となる。すなわち、第一の相対位置においては、操作部１０２０の中心位置の点８０１１に対して、図２のＸ軸のマイナス方向に１３ｃｍの位置がロボットアーム１００の手先１０１１の位置になる。
【００５８】
ここでは、説明を簡単にするために、操作部１０２０を固定部１０２０の第１穴１１２０ａにねじ込む構成を説明したが、他のいかなる構成であっても構わない。
【００５９】
エンコーダ１０９９は、ロボットアーム１００の各関節にそれぞれ備えられて、各関節の角度を取得する。
【００６０】
一例として、ロボットアーム１００は、複数の多関節機構を有する多関節ロボットアームであって、複数の関節軸を中心に２つのリンク７０２，７０３が回転駆動する。
【００６１】
具体的には、ロボットアーム１００は、６自由度の多リンクのマニピュレータである。ロボットアーム１００は、手先１０１１に手首部７０１を有する前腕リンク７０２と、前腕リンク７０２の基端に回転可能に先端が連結される上腕リンク７０３と、上腕リンク７０３の基端が回転可能に連結支持される台部７０４とを備えている。台部７０４は、一定位置に固定されているが、図示しないレールに移動可能に連結されていても良い。手首部７０１は、一例として、第４関節部と、第５関節部と、第６関節部との３つの互いに直交する回転軸を有しており、前腕リンク７０２に対する手先１０１１の相対的な姿勢（向き）を変化させることができる。すなわち、第４関節部は、手首部７０１に対する手先１０１１の横軸周りの相対的な姿勢を変化させることができる。第５関節部は、手首部７０１に対する手先１０１１の、第４関節部の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第６関節部７１０は、手首部７０１に対する手先１０１１の、第４関節部の横軸及び第５関節部の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク７０２の他端は、上腕リンク７０３の先端に対して第３関節部周りに、すなわち、第４関節部の横軸と平行な横軸周りに回転可能とする。上腕リンク７０３の他端は、台部７０４に対して第２関節部周りに、すなわち、第４関節部の横軸と平行な横軸周りに回転可能とする。さらに、台部７０４の上側可動部は、台部７０４の下側固定部に対して第１関節部周りに、すなわち、第５関節部の縦軸と平行な縦軸周りに回転可能としている。
【００６２】
この結果、ロボットアーム１００は、合計６個の軸周りに回転可能として６自由度の多リンクマニピュレータを構成している。
【００６３】
ロボットアーム１００の各軸の回転部分を構成する各関節部には、関節部駆動用のモータ１０９８のような回転駆動装置と、モータ１０９８の回転軸の回転位相角（すなわち関節角）を検出して位置情報を出力するエンコーダ１０９９（実際には、ロボットアーム１００の各関節部の内部に配設されている）とを備えている。モータ１０９８（実際には、ロボットアーム１００の各関節部の内部に配設されている）は、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられる、モータドライバの機能をそれぞれ内蔵する教示制御部１０５０Ａ又は再生制御部１１３０により駆動制御される。各関節部の一方の部材に備えられたモータ１０９８の回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００６４】
位置情報取得部１０９１は、ロボットアーム１００の手先１０１１の位置および姿勢を取得する。具体的には、位置情報取得部１０９１は、エンコーダ１０９９によって取得した各関節の関節角と、各関節の長さ（位置情報取得部１０９１の内部記憶部に予め記憶された情報）とにより手先１０１１の位置および姿勢を取得する。
【００６５】
第一測定部１０３０は、第一センサ１０９０で撮影した画像に基づいて、操作部１０２０に対する手先１０１１の相対位置を取得する。一般に、カメラ上で撮影したｎ点（ただし、ｎ＞０）の特徴点の位置から、カメラの姿勢を推定する問題をＰｎＰ問題（ＰＥＲＳＰＥＣＴＩＶＥ−ｎ−ＰＯＩＮＴ  ＰＲＯＢＬＥＭ）と言う。本構成では、第一測定部１０３０によりＰｎＰ問題を解くことによって、第一センサ１０９０に対する操作部１０２０の位置を第一測定部１０３０で取得する。そこから、操作部１０２０に対するロボットアーム１００の手先１０１１の位置を第一測定部１０３０で取得する。第一センサ１０９０は、手先１０１１に対して固定されているので、第一センサ１０９０に対する操作部１０２０の相対位置が分かれば、手先１０１１に対する第一センサ１０９０の相対位置も分かる。ここでは簡単化のために、第一センサ１０９０の位置を手先１０１１の位置と同一とする。すなわち、手先１０１１の位置に第一センサ１０９０が取り付けられているものとする。
【００６６】
ｎが３点のときには、３点が同一直線上にあれば、ＰｎＰ問題は第一測定部１０３０で解くことができる。ＰｎＰ問題の詳細については、非特許文献１に記載されている。
【００６７】
【非特許文献１】ＪＯＮＡＴＨＡＮ  ＦＡＢＲＩＺＩＯ，  ＪＥＡＮ  ＤＥＶＡＲＳ，”  ＡＮ  ＡＮＡＬＹＴＩＣＡＬ  ＳＯＬＵＴＩＯＮ  ＴＯ  ＴＨＥ  ＰＥＲＳＰＥＣＴＩＶＥ−Ｎ−ＰＯＩＮＴ  ＰＲＯＢＬＥＭ  ＦＯＲ  ＣＯＭＭＯＮ  ＰＬＡＮＡＲ  ＣＡＭＥＲＡ  ＡＮＤ  ＦＯＲ  ＣＡＴＡＤＩＯＰＴＲＩＣ  ＳＥＮＳＯＲ”，  Ｅｌｅｃｔｒｏｎｉｃ  ｖｅｒｓｉｏｎ  ｏｆ  ａｎ  ａｒｔｉｃｌｅ  ｐｕｂｌｉｓｈｅｄ  ａｓ  Ｉｎｔｅｒｎａｙｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｉｍａｇｅ  ａｎｄ  Ｇｒａｐｈｉｃｓ，  Ｖｏｌｕｍｅ  ８，Ｉｓｓｕｅ  １，  Ｙｅａｒ  ２００８，  Ｐａｇｅｓ  １３５−１５５
【００６８】
本構成では、操作部１０２０の手先側の表面（例えば図７の左端面）には、相対位置を取得するために使用する特徴点が３点以上印刷されているか、又は、３点以上の特徴点のシールが貼り付けられている。図８は、図２における第一センサ１０９０の位置から操作部１０２０の端面を見た様子を示す図である。操作部１０２０には、特徴点２０１１〜２０１３がプリントされている。各特徴点２０１１〜２０１３は、それぞれ赤、青、緑に着色されており、操作部１０２０の特徴点以外の部分は、特徴点の色以外の色が着色されており、特徴点が抽出しやすくなっている。また、特徴点２０１１〜２０１３は同一直線上にある。各特徴点は、一例として半径２ｍｍの円である。特徴点２０１２は、操作部１０２０の表面の中心にあり、特徴点２０１１、２０１３は、特徴点２０１２からそれぞれ図２のＹ方向のプラス側、マイナス側の向きに所定距離例えば１ｃｍずつ離れた位置にある。
【００６９】
ここで、第一測定部１０３０の画像処理のみでは、操作部１０２０の絶対位置（作業空間における位置）を取得することが出来ない。例えば、第一センサ１０９０と、操作部１０２０それぞれの位置が、図１の位置より１０ｃｍ下にあった時に取得される画像と、それぞれが図１の位置で取得される画像は同じ画像になるためである。画像処理で取得されるのは、第一センサ１０９０に対する操作部の相対位置である。
【００７０】
絶対位置取得部１０９６は、操作部１０２０の絶対位置を取得する。
【００７１】
絶対位置は、作業空間に固定された座標空間の絶対座標における位置である。ここでは、地面（地球）に対して固定された座標空間を絶対空間とする。また、絶対作業における原点は、ロボットアーム１００の基端の台座７０４の回転支点とする。図１におけるＸ軸、Ｙ軸、Ｚ軸は、絶対空間における軸方向を示す。絶対座標における原点は、ロボットアーム１００の基端の台座７０４の回転支点の位置だが、ロボットアーム１００の図面と重なるため、図面上では、若干ずらした位置に軸を記載している。
【００７２】
図９は、絶対位置取得部１０９６が行う絶対位置取得処理の流れを示す図である。
【００７３】
図９のステップＳ６０１で、絶対位置取得部１０９６は絶対位置取得処理を開始する。
【００７４】
次に、ステップＳ６０２で、位置情報取得部１０９１は、ロボットアーム１００の手先１０１１の位置を取得する。具体的には、ロボットアーム１００の各関節の角度を取得し、取得した角度からロボットアーム１００の手先位置を算出する。なお、各関節の角度は、各関節に予め取り付けられたエンコーダ１０９９によって取得する。図１０は、ロボットアーム１００の手先１０１１の位置を示す図である。この比較例の構成では、簡単化のためにロボットアーム１００は操作部１０２０のＸＹ平面上しか移動しない場合を説明する。ただし、ＸＹの原点Ｏは、ロボットアーム１００の基端の台部７０４の回動支点とする。
【００７５】
図１０において、点７０１０は、手先１０１１の中心位置を示す点である。ベクトル７０１１は、手先１０１１の方向を示すベクトルである。前記ステップＳ６０２では、点７０１０の位置（Ｘ＿Ｅ、Ｙ＿Ｅ）と、Ｘ軸のプラス方向に対してベクトル７０１１がなす角度αをで取得する。なお、位置（Ｘ＿Ｅ、Ｙ＿Ｅ）および角度αは、位置情報取得部１０９１によって取得する手先１０１１の位置および姿勢である。
【００７６】
次いで、ステップＳ６０３で、第一測定部１０３０は、第一センサ１０９０で撮影した画像に基づいて、ロボットアーム１００の手先１０１１に対する操作部１０２０の相対位置を取得する。手先１０１１に対する相対座標は、常に、手先１０１１と共に移動する座標空間である。原点は手先１０１１とし、手先１０１１の位置が移動すれば、（絶対座標空間における）原点の位置も移動する。また、手先１０１１が回転すれば（絶対座標空間における）軸の方向も回転する。図１１は、ロボットアーム１００の手先１０１１に対する操作部１０２０の位置を示す図である。手先１０１１の位置を中心（原点）とし、ベクトル７０１１の方向をｘ軸方向とし、ｘ軸方向と直交する方向をｙ軸方向とし、ｘ軸方向及びｙ軸方向と直交する方向をｚ軸方向とするｘｙｚの座標空間における操作部１０２０の位置を取得する。
【００７７】
なお、実際には、手先１０１１の位置と第一センサ１０９０のカメラ焦点の位置との間には誤差があり、その分の誤差を考慮して、移動したい位置を原点とするが、ここでは簡単化のため、カメラ焦点の位置が、手先１０１１の位置と一致しているものとして、説明を行う。
【００７８】
このステップＳ６０３では、操作部１０２０の中心位置である点８０１１のＥ点に対する位置（ｘ＿Ｈ、ｙ＿Ｈ）と、ｘ軸のプラス方向に対して、操作部１０２０がなす角度βを第一測定部１０３０によって取得する。すなわち、図中のＥ点に取り付けられている第一センサ１０９０によって、操作部１０２０に取り付けられた特徴点の位置を抽出することで、図中のＥ点のｘｙ座標系における操作部１０２０の位置及び姿勢を第一測定部１０３０で取得する。第一測定部１０３０で取得した姿勢が、角度βである。
【００７９】
次いで、ステップＳ６０４では、絶対位置取得部１０９６は、第一測定部１０３０で取得した操作部１０２０の位置及び姿勢に基づいて、操作部１０２０の絶対位置を取得する。具体的には、操作部１０２０の中心位置の点８０１１の位置（Ｘ＿Ｈ，Ｙ＿Ｈ）の位置は、前記の条件により次式となる。なお、図１１に補助線を示す。
【００８０】
（数２）
Ｘ＿Ｈ＝Ｘ＿Ｅ＋ｘ＿Ｈ×ｃｏｓα―ｙ＿Ｈ×ｓｉｎα
Ｙ＿Ｈ＝Ｙ＿Ｅ＋ｘ＿Ｈ×ｓｉｎα＋ｙ＿Ｈ×ｃｏｓα
．．．．．．．（式２）
また、操作部１０２０が、Ｘ軸となす角θを次式となる。
【００８１】
（数３）
θ＝α＋β
．．．．．．．（式３）
前記式２、式３より、操作部１０２０の中心位置の点８０１１の位置（Ｘ＿Ｈ，Ｙ＿Ｈ）、操作部１０２０がＸ軸となす角θの値を絶対位置取得部１０９６で算出する。
【００８２】
最後に、ステップＳ６０７で、絶対位置取得部１０９６は、絶対位置取得処理を終了する。
【００８３】
第一相対位置算出部１０４０は、ロボットアーム１００の手先１０１１の移動位置（移動量又は移動方向）を決定する。既に説明したように、ロボットアーム１００を移動する位置は、手先１０１１が、操作部１０２０に対して第一の相対位置になる位置である。よって、第一相対位置算出部１０４０は、操作部１０２０に対する第一の相対位置を算出する。第一相対位置算出部１０４０は、まず、第一測定部１０３０を用いて操作部１０２０の位置を取得し、次に、操作部１０２０に対するロボットアーム１００の手先１０１１の位置が、第一の相対位置となるロボットアーム１００の手先１０１１の位置を決める。図１２は、第一相対位置算出部１０４０が行う第一相対位置算出処理の流れを示す図である。
【００８４】
図１２のステップＳ３１０１で、第一相対位置算出部１０４０は第一相対位置算出処理を開始する。
【００８５】
次に、ステップＳ３１０４で、絶対位置取得部１０９６は、図９のＳ６０１〜Ｓ６０７の処理に基づき、操作部１０２０の絶対位置を取得する。
【００８６】
次に、ステップＳ３１０５で、第一相対位置算出部１０４０は、手先１０１１の移動位置を決定する。概要で述べたように、第一相対位置算出部１０４０は、操作部１０２０に対して固定時のロボットアーム１００の手先１０１１の位置を、移動位置とする。また、固定部１０２０の説明で述べたように、操作部１０２０に対して、図２のＸ軸のマイナス方向に、ロボットアーム１００の手先１０１１の中心の位置と操作部１０２０の中心の位置との距離（例えば１３ｃｍ）だけ離れた位置が、ロボットアーム１００の手先１０１１の固定時の位置になる。図１１においては、操作部１０２０の方向は、Ｘ軸となす角θの方向（ベクトル８０１０の方向）である。よって、操作部１０２０の中心位置８０１１から、ベクトル８０１０の逆の方向へ、ロボットアーム１００の手先１０１１の中心の位置と操作部１０２０の中心の位置との距離（例えば１３ｃｍ）だけ離れた位置が、移動位置となる。移動位置を（Ｘ＿Ｈ‘、Ｙ＿Ｈ’）とした場合、その位置は次式となる。
【００８７】
（数４）
Ｘ＿Ｈｄ‘＝Ｘ＿Ｈ―１３×ｃｏｓθ
Ｙ＿Ｈｄ‘＝Ｙ＿Ｈ―１３×ｓｉｎθ
．．．．．．．（式４）
次に、ステップＳ３１０６で、第一相対位置算出部１０４０は、ステップＳ３１０５で算出した移動位置を、第一相対位置算出部１０４０から教示制御部１０５０及び軌跡生成部１０８０に送信する。
【００８８】
最後に、ステップＳ３１０７で、第一相対位置算出部１０４０は第一相対位置算出処理を終了する。
【００８９】
モータ１０９８は、ロボット１０１０の各関節に取り付けられた関節駆動装置の一例である。図１では、１つの四角形のブロックでモータ１０９８を表現しているが、実際には、ロボットアーム１００の各関節に対して、ロボットアーム１００の内部に取り付けられている。
【００９０】
教示制御部１０５０は、教示時のロボット制御を行う。第一相対位置算出部１０４０から受信したロボットアーム１００の手先１０１１の位置に、実際に手先１０１１を移動するように各関節のモータ１０９８の制御を行う。具体的には、ロボットアーム１００の各関節に取り付けられたモータ１０９８をそれぞれ正逆回転させて、エンコーダより算出されるロボットアーム１００の手先１０１１の位置が第一相対位置算出部１０４０から受信した位置となるように移動する制御を行う。
【００９１】
軌跡生成部１０８０は、第一相対位置算出部１０４０から受信したロボットアーム１００の手先１０１１の位置を時系列順に順次記憶する。軌跡生成部１０８０では、第一相対位置算出部１０４０から受信した位置の情報の一つ一つを、レコードとして記憶する。
【００９２】
なお、軌跡生成部１０８０は、ロボットアーム１００の手先１０１１の位置を格納する替わりに、ロボットアーム１００の各関節の角度の時系列データを格納する構成であっても構わない。また、手先１０１１の位置を格納する替わりに、操作部１０１１の位置を格納する構成であっても構わない。また、ここでは、ダイレクトティーチングの場合について説明したが、マスタースレーブにおいては、教示はマスタ側のロボットで行う。教示した軌跡は、時系列データとして保持する替わりに、随時、マスタ側のロボットからスレーブ側ロボットに送信する構成とする。
【００９３】
再生制御部１１３０は、教示した軌跡を再生するときに、ロボットアーム１００Ａの各関節のモータ１０９８の駆動制御を行う。再生制御部１１３０は、軌跡生成部１０８０が保持するロボットアーム１００の手先１０１１の位置の時系列データの各位置に、順番に、ロボットアーム１００の手先１０１１を移動する制御を行う。具体的には、ロボットアーム１００の各関節に取り付けられたモータ１０９８をそれぞれ正逆回転させて、エンコーダより算出されるロボットアーム１００の手先１０１１の位置が軌跡生成部１０８０より取得した時系列データの各位置となるように移動する制御を行う。
【００９４】
なお、軌跡生成部１０８０は、ロボットアーム１００の手先１０１１の位置を格納する替わりに、ロボットアーム１００の各関節の角度の時系列データを格納した構成では、角度を時刻順に再現する。また、操作部１０２０の位置を格納した構成では、操作部１０２０の位置からロボットアーム１００の手先１０１１の位置を算出して、再現を行う。また、マスタースレーブにおいては、マスター側ロボットから受信したロボットアームの位置をスレーブ側ロボットで再現する。
【００９５】
このような比較例の構成の構成を採ることによる効果を３つ述べる。
【００９６】
第一に、操作者は、操作感良く、操作部１０２０の操作を行うことができる。これは、操作部１０２０が、ロボットアーム１００と分離して移動できるので、操作部１０２０が物体と衝突したときに、操作者は、その衝突による衝撃を操作部１０２０を通して感じることができるからである。
【００９７】
第二に、操作部１０２０の位置を精度良く測定できる。例えば、カメラが天井に設置された場合、カメラと撮影対象との距離が大きく、撮影誤差がでやすい。一般に、カメラで特徴点の位置を抽出する場合、撮影対象物が所定の距離から離れるに従って測定精度が悪くなる。本構成では、カメラである第一センサ１０９０は手先１０１１に固定されているため、常に、操作部１０２０に対して近距離で、ほぼ一定の距離の位置にあるため、操作部１０２０の位置を精度良く取得することができる。
【００９８】
第三に、ロボットアーム１００が周囲の物体と干渉しないかを、操作者は確認することができる。例えば、前記比較例の構成とは異なり、操作者が操作部１０２０だけを動かして操作部１０２０の位置を天井に設置したカメラから取得し、ロボットアーム１００を動かさなかった場合、軌跡の再生時に、ロボットアーム１００がどのような姿勢を取るかが分からないまま、操作部１０２０で教示を行うこととなる。よって、いざ再生を行ってみると、ロボットアーム１００の関節が地面にぶつかるような姿勢を取ることがある。
【００９９】
これに対して、前記比較構成では、教示時にロボットアーム１００は、再生時とほぼ同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム１００が周囲の物体と干渉するような姿勢をとっていないかを操作者が確認して軌跡を操作部１０２０で作っておけば、再生時にも、ロボットアーム１００が周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム１００が移動する。ここで、「ほぼ」としたのは、若干、教示時のロボットアーム１００の軌跡と再生時のロボットアーム１００の軌跡とがずれる場合があるためである。教示時に、ロボットアーム１００の手先１０１１は、操作部１０２０に追従して移動するが、完全に追従ができるわけではない。操作部１０２０が急激に移動した場合には、追従が追いつけなかったり、ロボットアーム１００の制御上の制約によって振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【０１００】
前記比較構成では、操作部１０２０は、従来のダイレクトティーチングと比べて、素早く自由に動かすことができる。そのことによって、ロボットアーム１００が非常に高速に移動する。
【０１０１】
しかしながら、以下のような課題が存在する。
【０１０２】
図１３は、操作部１０２０が、実線で示す、ある位置にあるときのロボットアーム１００の姿勢を示す図である。この操作部１０２０を、図中の実線の位置Ａから点線の位置Ｂに移動した場合の、ロボットアーム１００の位置を図１４に示す。図１４において、前記移動前のロボットアーム１００の位置Ｃと操作部１０２０の位置Ａとを点線で示す。移動後のロボットアーム１００の位置Ｄと操作部１０２０の位置Ｂを実線で示す。この図１４は、操作部１０２０を位置Ａから位置Ｂまで若干動かしただけであっても、ロボットアーム１００はその位置が位置Ｃから位置Ｄまで大きく移動することを示す。
【０１０３】
従来のダイレクトティーチングであれば、操作部１０２０はロボットアーム１００につながっているので、このようにロボットアーム１００大きく移動する場合には操作感が悪くなり、操作者は自然と移動速度を遅くする。しかし、前記比較例の構成では、操作感が良い状態が続くので、操作者が操作部１０２０を使用して手先の作業に集中していると、ロボットアーム１００の動きに気が付かず操作部１０２０を動かし続けるので危険なことがある。例えば、操作者による操作部１０２０の移動に伴い、ロボットアーム１００が高速で操作者１０１０又は周囲の人に衝突する危険性がある。また、操作部１０２０を、さらに図１４中の矢印の方向に回転すれば、ロボットアーム１００は、実線で示す位置よりもさらに下側に、地面を掘り返しながら移動することになり危険である。あるいは、ロボットアーム１００のモータ１０９８に過負荷が作用して故障する可能性がある。
【０１０４】
一方で、ロボットアーム１００の移動速度に上限を設けて、ロボットアーム１００が操作部１０２０に遅れてついてくる構成にした場合には、操作部１０２０を高速で動かしても、ロボットアーム１００はその上限速度以下で移動することになり、安全性は向上する。しかし、操作部１０２０を高速で動かす時間が長くなるに従って、操作部１０２０に対して、ロボットアーム１００の手先１０１１の位置は操作部１０２０から離れていくことになる。先述した通り、第一センサ１０９０に対して、操作部１０２０の位置が離れるに従って、第一センサ１０９０の測定精度は悪くなる。よって、教示される軌跡自体の精度が低下する。
【０１０５】
さて、操作者が教示時に取得したい作業軌跡には、精度良く位置を測定したい作業部分と、それほど精度良い位置が求められない作業部分とがある。例えば、柔軟物の挿入作業であれば、柔軟物を挿入対象物の穴から例えば１ｃｍほど離れた位置まで近づける作業は、精度を求めない作業部分である。一方、柔軟物と挿入対象物の穴との最後の位置合わせ部分、又は、穴に柔軟物を押し込む部分は、精度良く位置を取得する必要がある作業部分である。精度良く位置が取得できなければ、教示した軌跡を使って再生を行うときに、柔軟物が穴にうまく入らない。
【０１０６】
先述したロボットアーム１００に上限速度を設けた場合では、操作部３４２０を精度良く測定できない期間が生じる。そのような期間に、柔軟物の最後の位置合わせ、又は、穴に柔軟物を押し込む作業が行われると、精度を必要とする作業部分を、精度良く測定できなくなる。そのため、測定自体をやり直さなければならない。
【０１０７】
＜第１実施形態＞
前記比較例の構成の課題を解決する本発明の第１実施形態の構成を図１５及び図１６を用いて説明する。図１５は、教示時におけるロボット装置１０００Ａを、図１６は、教示した軌跡の再生時のロボット装置１０００Ａを示す図である。
【０１０８】
前記した図１〜図１４までの比較例の構成の場合と同様の部又は部材又は装置は、説明を省略する。
【０１０９】
前記した比較例の構成と異なる部又は部材又は装置は、移動量決定部の一例としての第一相対位置算出部１０４０Ａと、軌跡生成部１０８０Ａと、保持部１１４０と、教示制御部１０５０Ａと，距離算出部１３１０と、判定部１０６０と、通知部１０７０と、送信部１０９３と、受信部１０９４とである。
【０１１０】
まず、ロボット装置１０００Ａの概要を説明する。
【０１１１】
前記比較例の構成では、ロボットアーム１００に上限速度が無い。そして、ロボットアーム１００の手先１０１１の位置が、常に、操作部１０２０に対して一定の位置になるように追従している。一方、第１実施形態のロボット１０１０Ａのロボットアーム１００Ａには上限速度を設ける。そのため、ロボットアーム１００Ａの手先１０１１の位置は、いつでも操作部１０２０に対して第一の相対位置にいることはできない。すなわち、ロボットアーム１００Ａに上限速度を設けることで、操作部１０２０にロボットアーム１００Ａが追い付けない場合が発生する。その場合、少し前の時刻に操作部１０２０が位置していた位置に対して、ロボットアーム１００Ａの手先１０１１を固定した場合の位置が、移動目標位置となる。
【０１１２】
前記比較例の構成では、操作部１０２０の位置に対して、ロボットアーム１００の手先１０１１の位置を決めて、すぐにその位置に移動させている。これに対して、第１実施形態では、手先１０１１の位置を、次々に、軌跡生成部１０８０Ａのデータベースにレコードとして蓄積する。そして、ロボットアーム１００Ａが操作部１０２０に追い付いて追従を行う場合には、データベースの最新のレコードの手先１０１１の位置にロボットアーム１００Ａが移動をする。ロボットアーム１００Ａが上限速度では追い付けなくなったら、データベースの中のまだ移動していないレコードを基に、ロボットアーム１００Ａが順番に移動していく。そして、ロボットアーム１００Ａがデータベースの最新のレコードに追い付いたら、それ以降は、ロボットアーム１００Ａは最新のレコードに基づいて移動を行う。軌跡生成部１０８０Ａは、データベースを保持し、保持部１１４０は、データベースのどのレコードまで移動したかの情報を保持する。
【０１１３】
さて、操作部１０２０の移動に対して、ロボットアーム１００Ａの手先１０１１の追随が遅れていくと、操作部１０２０が、手先１０１１に固定された第一センサ１０９０で撮影しにくい位置に移動する場合がある。撮影しにくい位置とは、ここでは、操作部１０２０の位置を第一センサ１０９０で精度良く取得できない位置のことである。そのような位置に操作部１０２０があるか否かを判断するのが判定部１０６０である。また、判定部１０６０での判定結果を基に、前記撮影しにくい位置にあることの通知を操作者に通知するのが通知部１０７０である。判定部１０６０での判定結果としての通知の指令は、判定部１０６０から送信部１０９３に入力される。送信部１０９３は、通知部１０７０に、通知の指令を送信する。送信部１０９３が送信した通知の指令を受信するのが受信部１０９４である。受信部１０９４で受信した通知の指令に基づき、通知部１０７０で、前記撮影しにくい位置にあることの通知を操作者に通知する。
【０１１４】
以上が、ロボット１０１０Ａの概要である。
【０１１５】
以下、前記比較例の構成と異なる部又は部材又は装置である、第一相対位置算出部１０４０Ａと、軌跡生成部１０８０Ａと、保持部１１４０と、教示制御部１０５０Ａと、距離算出部１３１０と、判定部１０６０と、通知部１０７０と、送信部１０９３と、受信部１０９４とを説明する。
【０１１６】
なお、ロボット装置１０００Ａは、主に、ロボット１０１０Ａと、操作部１０２０と、通知部１０７０と、受信部１０９４とで大略構成されている。ロボット１０１０Ａは、ロボット本体の一例であるロボットアーム１００Ａと、制御部１０１Ａと、第１センサ１０９０と、モータ１０９８と、エンコーダ１０９９とで構成されている。制御部１０１Ａは、位置情報取得部１０９１と、第一測定部１０３０と、絶対位置取得部１０９６と、再生制御部１１３０と、第一相対位置算出部１０４０Ａと、軌跡生成部１０８０Ａと、保持部１１４０と、教示制御部１０５０Ａと、距離算出部１３１０と、判定部１０６０と、送信部１０９３とで構成されている。なお、ロボット装置１０００Ａにおいて、再生制御部１１３０以外の部及び部材及び装置をロボットアームの教示装置９００とする。
【０１１７】
第一相対位置算出部１０４０Ａは、前記比較例の構成における第一相対位置算出部１０４０と同様に、操作部１０２０に対するロボットアーム１００Ａの手先１０１１の位置が第一の相対位置となる、ロボットアーム１００Ａの手先１０１１の位置を決める。
【０１１８】
前記比較例の構成では、第一相対位置算出部１０４０で算出した手先１０１１の位置を教示制御部１０５０及び軌跡生成部１０８０に送信しているが、第１実施形態では、第一相対位置算出部１０４０Ａで算出した手先１０１１の位置を、軌跡生成部１０８０Ａと、距離算出部１３１０を介して判定部１０６０とに送信する。
【０１１９】
保持部１１４０は、教示制御部１０５０Ａからの情報を基に、軌跡生成部１０８０Ａが保持する何番目の位置データまでを移動し終えたかを保持して、保持した情報を教示制御部１０５０Ａに出力する。保持部１１４０には、初期状態では値「０」が格納されている。例えば、４番目のレコードの位置までは移動して、５番目のレコードの位置までは移動し終えておらず、その中間の位置にいる場合には、値「４」が保持部１１４０に格納されることになる。
【０１２０】
通知部１０７０は、第一センサ１０９０が精度良く測定を行えないと判定部１０６０で判定された場合に、操作者に情報を通知する。ここでは、通知部１０７０の一例として、操作部１０２０に取り付けられたバイブモータを振動させることで、現在、精度良く測定を行えないことの通知を操作者に行なう。
【０１２１】
なお、通知部１０７０が送る通知内容は、振動に限らず、音を鳴らすなどの通知であっても構わない。また、人が気づき難い方法での通知であっても構わない。例えば 、
人が作業への集中を妨げる音楽（又はリラックスする音楽）を流したりするなどでも良い。直接、人が理解できる内容である必要はなく、照明を徐々に暗くしたりするものでも良い。
【０１２２】
送信部１０９３は、判定部１０６０から精度良く測定を行えないことの通知の指令の情報を受け取り、受信部１０９４に向けて送信する。送信部１０９３は、具体的には、無線通信の送信部である。
【０１２３】
受信部１０９４は、送信部１０９３が送信した通知の指令を操作部１０２０で受信する。受信部１０９４は、具体的には、無線通信の受信部である。受信した通知の指令は、通知部１０７０に送られて、通知部１０７０で通知を行なう。
【０１２４】
距離算出部１３１０は、第一相対位置算出部１０４０Ａ及び位置情報取得部１０９１からの情報に基づき、第一相対位置算出部１０４０Ａが算出した、現在の操作部１０２０に対する固定時のロボットアーム１００の手先１０１１の位置に対する、現在の実際のロボットアーム１００の手先１０１１の位置の距離を算出して、算出結果を判定部１０６０に出力する。
【０１２５】
判定部１０６０は、位置情報取得部１０９１及び第一測定部１０３０からの情報に基づき、第一測定部１０３０が予め定めた精度で測定が行えているか否かを判定する。ここでは、判定部１０６０は、ロボットアーム１００Ａに対する操作部１０２０の相対位置と、第一の相対位置とのずれが所定の距離以下であれば、精度良く測定が行えると判定し、所定の距離より大きければ、精度良く測定が行えないと判定する。判定部１０６０は、精度良く測定が行えないと判定したとき、通知を行なうべく、通知の指令を送信部１０９３に出力する。
【０１２６】
以下、判定部１０６０が行う判定処理の流れを図１７に示す。
【０１２７】
ステップＳ１５０１で、判定部１０６０は判定処理を開始する。
【０１２８】
次に、ステップＳ１５０２で、第一相対位置算出部１０４０Ａは、現在の操作部１０２０に対する第一の相対位置を取得する。
【０１２９】
次いで、ステップＳ１５０３で、位置情報取得部１０９１は、現在のロボットアーム１００の手先１０１１の位置を取得する。
【０１３０】
次いで、ステップＳ１５０４で、距離算出部１３１０は、ステップＳ１５０３における実際のロボットアーム１００の手先１０１１の位置と、ステップＳ１５０２で取得した第一の相対位置との距離を算出する。すなわち、距離算出部１３１０は、移動目標位置と、現在位置との距離を算出する。この距離が小さいほど、ロボットアーム１００の手先１０１１は、第一の相対位置に近い位置にいることになる。すなわち、撮影が正確に行える位置にいることになる。逆に、この距離が大きいほど、撮影が不正確な位置にいることになる。
【０１３１】
ステップＳ１５０５では、判定部１０６０は、ステップＳ１５０３で取得した距離が予め設定した閾値よりも大きいか否かを判定する。この閾値は、撮影対象が、撮影中心からどれだけ離れると、撮影が不正確になるかに基づいて予め決定する。これをより詳しく説明する。ロボットアーム１００Ａの移動目標位置と、ロボットアーム１００Ａの現在位置との距離が予め設定した閾値よりも小さい場合、第一センサ１０９０と、操作部１０２０との距離も小さい。よって、第一センサ１０９０は、操作部１０２０の位置を精度良く測定することができる。しかし、ロボットアーム１００Ａの移動目標位置と、ロボットアーム１００Ａの現在位置との距離が予め設定した閾値よりも大きい場合、第一センサ１０９０と、操作部１０２０とのよりも大きい。よって、第一センサ１０９０は、操作部１０２０の距離を精度良く測定できなくなる。例えば、第一センサ１０９０がカメラの場合は、操作部１０２０の特徴点２０１１〜２０１３の輪郭がボケるためである。これより、ステップＳ１５０３で取得した距離が予め設定した閾値よりも大きいと判定部１０６０で判定した場合には、判定部１０６０は通知の指令を送信部１０７０に出力し、ステップＳ１５０６に分岐し、そうでない場合には、ステップＳ１５０７に分岐して、一連の処理を終了する。
【０１３２】
なお、判定部１０６０は、第一測定部１０３０で抽出できた距離の信頼度に基づいて判定を行っても良い。例えば、判定部１０６０は、第一測定部１０３０で抽出できた特徴点の数に基づいて判定を行っても良い。例えば、特徴点を３点よりも多く用意しておいた場合、抽出できた特徴点の数が多いほど、信頼度の高い距離を算出できる。第一測定部１０３０で抽出できた特徴点の数が閾値以下であれば、判定部１０６０を介して通知部１０７０で通知を行い、そうでない場合は、判定部１０６０を介して通知部１０７０で通知を行わない構成としてもよい。
【０１３３】
また、例えば、第一測定部１０３０で抽出できた特徴点の大きさに基づいて判定部１０６０で判定を行ってもよい。より具体的には例えば、特徴点を３点よりも多く用意しておいて、第一測定部１０３０で抽出できた特徴点のうち、１番目から３番目に大きい特徴点までを用いて位置推定を行う。その際、３番目に大きい特徴点の大きさが大きいほど、信頼度の高い距離を算出できる。そこで３番目に大きい特徴点の大きさが閾値以下であれば通知を行い、そうでない場合は通知を行わない構成としてもよい。
【０１３４】
また、今、軌跡生成部１０８０が保持するレコードのうち、今、実行しているレコードの番号が最新のレコードの番号から、どれだけ遅れているかに基づいて、所定の閾値よりも２つの番号の差が大きい場合には通知部１０７０で通知するとして、判定部１０６０で判定を行ってもよい。また、撮影対象の法線方向が、カメラの法線方向からどれだけずれているかに基づいて、所定の閾値よりも２つの方向の角度差が大きい場合には通知部１０７０で通知するとして、判定部１０６０で判定しても良い。
【０１３５】
ステップＳ１５０６では、判定部１０６０から出力された通知の指令に基づき、送信部１０９３は通知を送信する。受信部１０９４は送信部１０９３からの通知の指令を受信する。受信部１０９４が送信部１０９３からの通知の指令を受信すると、その指令が通知部１０７０に入力される。すると、通知部１０７０は、予め定められた通知処理を行う。ここでは、通知部１０７０は振動する機械であるので、この機械が振動する動作を行う。その後、ステップＳ１５０７に進む。
【０１３６】
ステップＳ１５０７では、判定処理を終了する。
【０１３７】
教示制御部１０５０Ａは、位置情報取得部１０９１と軌跡生成部１０８０Ａと保持部１１４０との情報に基づき、軌跡生成部１０８０Ａが保持するレコードのうち、未実行のレコードを実行するように、ロボットアーム１００Ａの関節のそれぞれのモータ１０９８を駆動制御する。位置情報取得部１０９１から取得した現在の位置から、そのレコードの位置までの移動距離が所定の閾値（上限）より長ければ、閾値（上限）の範囲で、レコードの位置に近づくように、教示制御部１０５０Ａで制御を行なう。もし、現在の位置までの移動距離が所定の閾値（上限）より短ければ、さらにその次のレコードの位置を目標位置にするように、教示制御部１０５０Ａで制御を行なう。教示制御部１０５０Ａが行う教示制御処理の流れを図１８に示す。
【０１３８】
ステップＳ１６０１で、教示制御部１０５０Ａは教示制御処理を開始する。
【０１３９】
次いで、ステップＳ１６０２で、位置情報取得部１０９１は、ロボットアーム１００の手先１０１１の現在位置を取得する。具体的なやり方は、前記比較例の構成比と同様である。
【０１４０】
次いで、ステップＳ１６０３で、教示制御部１０５０Ａは、保持部１１４０より、最後に実行したレコードの番号を取得する。
【０１４１】
次いで、ステップＳ１６０４で、教示制御部１０５０Ａは、取得したレコード番号に１を加える。この番号のレコードが、次に移動するレコードの候補となる。
【０１４２】
次いで、ステップＳ１６０５で、教示制御部１０５０Ａは、軌跡生成部１０８０より、未実行のレコード番号のレコードを取得する。
【０１４３】
次いで、ステップＳ１６０６で、教示制御部１０５０Ａは、軌跡生成部１０８０より取得したレコードが、軌跡生成部１０８０Ａが保持する最後のレコードであるかを判定する。最後のレコードであった場合には、ステップＳ１６０７へ分岐する。そうでない場合はステップＳ１６０８へ分岐する。
【０１４４】
ステップＳ１６０７で、教示制御部１０５０Ａは、ステップＳ１６０５で取得したレコードの位置に、ロボットアーム１００の手先１０１１を移動するように、ロボットアーム１００Ａの関節のそれぞれのモータ１０９８を制御する。ロボットアーム１００Ａの移動後、ステップＳ１６１３に分岐する。
【０１４５】
次いで、ステップＳ１６１３で、教示制御部１０５０Ａは、保持部１１４０に、現在のレコード番号の値（すなわち、再度のレコードの値）を格納する。格納後、ステップＳ１６１２に分岐して、一連の処理を終了する。
【０１４６】
一方、ステップＳ１６０８で、教示制御部１０５０Ａは、ステップＳ１６０２で位置情報取得部１０９１から取得した現在のロボットアーム１００の手先１０１１の位置から、軌跡生成部１０８０より取得したレコードの位置までの距離を算出する。
【０１４７】
次いで、ステップＳ１６０９で、教示制御部１０５０Ａは、軌跡生成部１０８０より取得した算出した距離が、予め定めた閾値（上限）以上であるかを判定する。閾値（上限）以上であると教示制御部１０５０Ａで判定した場合には、ステップＳ１６１０に分岐し、閾値（上限）未満であると教示制御部１０５０Ａで判定した場合には、ステップＳ１６０４に分岐する。
【０１４８】
ステップＳ１６１０で、教示制御部１０５０Ａは、移動位置を決定する。ここでは、ステップＳ１６０２で位置情報取得部１０９１から取得した現在位置から、ステップＳ１６０５で取得したレコード位置に向かって、閾値（上限）の距離だけ進んだ位置に、ロボットアーム１００の手先１０１１を移動するようにモータ１０９８の駆動制御を行う。すなわち、モータ１０９８の正逆回転を制御する。
【０１４９】
次いで、ステップＳ１６１１で、教示制御部１０５０Ａは、保持部１１４０に、現在のレコード番号の値から１を引いた値を格納する。
【０１５０】
次いで、ステップＳ１６１２で、教示制御部１０５０Ａは教示制御処理を終了する。
【０１５１】
ここで、ステップＳ１６０９における「予め定めた閾値」は、ロボットアームを一回の制御で移動させる移動距離の上限値に相当する。すなわち、保持部１１４０より取得したレコードの位置が、移動距離の上限値に達するまでは、次々にレコードを取得していき、上限値に達した場合に、（レコードの取得をやめて）ステップＳ１６１０に分岐して最後に取得したレコードに基づく移動の制御を行う。ここで、ステップＳ１６１０に分岐した場合には、（ステップＳ１６０５で）取得されていないレコードが保持部１１４０に存在していても、レコード取得を打ち切っている。すなわち、移動距離の上限値に到達したレコードよりも後のレコードの位置には移動されず、次に（図１８のフローが実行される時）の移動に持ち越される。
【０１５２】
また、ステップＳ１６１０では、最後に取得したレコードの位置に移動するのではなく、最後に取得したレコードの位置の方向に、「予め定めた閾値」の距離だけ進む構成としている。よって、最後に取得したレコードの位置が、移動距離の上限値よりも離れた位置であっても、実際に手先１０１１が移動する位置は、移動距離の上限値の位置になる。
【０１５３】
なお、ここでは、第一センサ１０９０が手先１０１１に固定された構成を説明したが、第一センサ１０９０は操作部１０９０に固定された構成であっても構わない。その場合は、特徴点を手先１０１１に設ける。
【０１５４】
また、ここでは、第一センサ１０９０がカメラのときの相対位置を取得する説明しているが、第一センサ１０９０がジャイロセンサーとレーザーレンジファインダとで構成され、それらによって相対位置を取得する構成であっても構わない。
【０１５５】
また、なお、判定部１０６０が行う処理のステップＳ１５０５では、ステップＳ１５０３で取得した距離を閾値と比較して、距離が閾値より大きい場合にのみ、通知を行う構成を説明したが、閾値を設ける替わりに、通知は常に行う構成として、ステップＳ１５０３で取得した距離が大きいほど、通知部１０７０が行う通知の量を段階的に又は徐々に大きくする構成であっても構わない。ここで通知の量とは、例えば通知部１０７０がバイブレータであるならば、振動の大きさであり、通知部１０７０が音を鳴らすのであれば、鳴らす音の大きさである。
【０１５６】
＜第１実施形態の第１変形例＞
第１実施形態では、第一センサ１０９０が精度良く測定を行えると判定した場合は、特に何もせず、精度良く測定を行えないと判定した場合には、通知部１０７０により、操作部１０２０を振動させて操作者が操作をし難くする構成を示している。第１実施形態の第１変形例では、第一センサ１０９０が精度良く測定を行えると判定した場合は、特に何もせず、精度良く測定を行えないと判定した場合には、操作部１０２０を物理的に拘束させて操作者が操作をし難くする構成を示す。拘束には、コード巻き取り機を用いる。
【０１５７】
図１９Ａは第１実施形態の第１変形例の構成を示す図である。手先１０１１にコード巻き取り部２１１０を固定し、基端がコード巻き取り部２１１０に固定されたコード２１１１の先端を、操作部１０２０に固定する。ここで、コード巻取り部２１１０は、掃除機のコード巻き取り機のようなコードを巻き取り出来る機構である。掃除機のコード巻き取り機は、ボタンを押している間は、コードが伸縮自在である。よって、コードの先端を人が握って動かせば、その動きに合わせてコードが伸縮する。ボタンを離した状態では、コードが伸縮できなくなり（あるいは、伸縮し難くなり）拘束される。よって、人がコードを掃除機から遠ざけようとしても拘束されて、遠ざけることはできない。ただし、近づく方向には拘束されない。
【０１５８】
コード巻取り部２１１０は、掃除機の場合と同様に、コード２１１１が伸縮自在な状態と、伸縮不能な状態とを切換えるスイッチを有する。例えば、スイッチは掃除機の場合と同様にボタンである。図１９Ａではスイッチは図示しない。
【０１５９】
切換え部２１２０は、このスイッチを切換える部である。例えば、スイッチが掃除機の場合と同様にボタンであるならば、モータを用いて、ボタンを押す、押さないを切換える。
【０１６０】
通知部１０７０は、コード２１１１をコード巻取り部２１１０に対して伸縮可能な状態にするか、伸縮不能な状態にするかの指示を切換え部２１２０に出力又は送信する。すなわち、第一センサ１０９０が精度良く測定を行えると判定部１０６０で判定した場合は、判定部１０６０からの判定結果の情報を基に、コード２１１１がコード巻取り部２１１０に対して伸縮可能な状態にする指示を切換え部２１２０に出力又は送信する。精度良く測定を行えないと判定部１０６０で判定した場合には、コード２１１１がコード巻取り部２１１０に対して伸縮不能な状態にする指示を切換え部２１２０に出力又は送信する。
【０１６１】
なお、この第１変形例では、通知部１０７０はロボット１０１０Ａの一部であるので、送信部１０９３及び受信部１０９４は存在しない構成となり、判定部１０６０は通知部１０７０に直接通知を行う。
【０１６２】
このように、通知部１０７０は、操作部１０２０に備えるのみならず、ロボット１０１０Ａに備えてもよいし、操作部１０２０とロボット１０１０Ａとの両方に備えてもよい。
【０１６３】
＜第２実施形態＞
第１実施形態では、第一センサ１０９０でロボット１０１０Ａの手先１０１１と、操作部１０２０の相対位置を測定する構成を説明している。第１実施形態では、第一センサ１０９０で常に相対位置を測定できることを前提としているが、実際には、手先１０１１と操作部１０２０との相対位置が離れすぎたり、操作部１０２０が第一センサ１０９０で撮影し難い向きを向いた場合に、相対位置が測定できない場合がある。そのような場合を補うために、本発明の第２実施形態では、第一センサ１０９０とは別に、第二センサ１０６０を備えて用いる。第一センサ１０９０は、相対位置を測定するセンサであるため、近い距離の対象物までの距離を測定する。第二センサ１０６０は、天井からの絶対位置を測定するセンサであるため、遠い距離の対象物までの距離を測定する。一般に、第二センサ１１６０の方が、測定精度が悪い。よって、正確な操作部１０２０の位置を取得するためには、第一センサ１０９０で距離を測定したいが、第一センサ１０９０で測定ができないときには第二センサ１１６０で位置を測定する。そして、第一センサ１０９０で測定ができないときには、通知部１０７０で通知を行う。
【０１６４】
第２実施形態の構成を図２０及び図２１を用いて説明する。図１５と同じ符号の構成要素は第１実施形態と同様の構成要素であるため、説明を省略する。以下、図１５に無い構成要素である、第一測定部１０３０Ｂと、絶対位置取得部１０９６Ｂと、第二測定部１１５０と、第二センサ１１６０と、判定部１０６０Ｂとを説明する。
【０１６５】
第一測定部１０３０Ｂは、第一センサ１０９０で撮影した画像に基づいて操作部１０２０に対する手先１０１１の相対位置を取得して、取得した情報を絶対位置取得部１０９６Ｂに出力する。第１実施形態と異なる点は、常に相対位置を取得できるとは限らない点である。第２実施形態における第一測定部１０３０Ｂは、相対位置を取得できたか否かの判定結果の真偽値を絶対位置取得部１０９６Ｂに出力する。例えば、特徴点の一部が取得できなかった場合に、偽の判定結果を絶対位置取得部１０９６Ｂに出力する。特徴点のすべてを抽出し、距離が算出できたときは、真の判定結果を絶対位置取得部１０９６Ｂに出力する。
【０１６６】
第二センサ１１６０は、ロボットアーム１００Ａによる作業を行う空間の天井側に設置して、地面（ロボットアーム設置床面）に対する操作部１０２０の絶対位置を取得する際に使用するセンサである。この第２実施形態の構成では、第二センサ１１６０が、天井に固定されたカメラである場合について説明する。具体的には、例えば、２０４８画素×２０４８画素を有するＣＣＤカメラである。このような構成では、カメラで取得した画像に対して、第二センサ１１６０に内蔵した画像処理部で画像処理を施すことで操作部１０２０の相対位置の取得を行う。この処理は、第一センサ１０９０と同様である。第１実施形態では、操作部１０２０の一端面に特徴点２０１１〜２０１３を配置する場合を説明しているが、第２実施形態では、操作部１０２０の全ての面に特徴点を配置しておき、絶対位置の取得に用いる。
【０１６７】
第二測定部１１５０は、制御部１０１Ａの一部を構成し、第二センサ１１６０で撮影した画像に基づいて操作部１０２０の絶対位置を取得し、操作部１０２０に対する手先１０１１の相対位置を取得して、取得した情報を絶対位置取得部１０９６Ｂに出力する。
【０１６８】
絶対位置取得部１０９６Ｂは、第一測定部１０３０Ｂと第二測定部１１５０との情報に基づき、操作部１０２０の絶対位置を取得する。第一測定部１０３０Ｂで操作部１０２０の相対位置が取得できた場合は、第１実施形態と同様の方法で操作部１０２０の絶対位置を取得する。第一測定部１０３０Ｂで操作部１０２０の相対位置が取得できなかった場合は、第二測定部１１５０を用いて操作部１０２０の絶対位置を取得する。
【０１６９】
図１９Ｂは、絶対位置取得部１０９６Ｂが行う絶対位置取得処理の流れを示す図である。
【０１７０】
ステップＳ２１０１で、絶対位置取得部１０９６Ｂは絶対位置取得処理を開始する。
【０１７１】
次いで、ステップＳ２１０２で、位置情報取得部１０９１は、ロボットアーム１００の手先１０１１の位置を取得する。第１実施形態におけるステップＳ６０２と同様の処理である。
【０１７２】
次いで、ステップＳ２１０３で、第一測定部１０３０Ｂは、操作部１０２０の相対位置を取得する。第１実施形態におけるステップＳ６０３と同様の処理である。第一測定部１０３０Ｂで操作部１０２０の相対位置を取得できた場合は、ステップＳ２１０４に分岐し、第一測定部１０３０Ｂで操作部１０２０の相対位置を取得できなかった場合は、ステップＳ２１０８に分岐する。
【０１７３】
ステップＳ２１０４では、絶対位置取得部１０９６Ｂは、操作部１０２０の絶対位置を取得する。第１実施形態におけるステップＳ６０４と同様の処理である。取得後、ステップＳ２１０７に分岐して、一連の処理を終了する。
【０１７４】
ステップＳ２１０８で、第二測定部１１５０は、操作部１０２０の絶対位置を取得して、絶対位置取得部１０９６Ｂに出力する。これにより、絶対位置取得部１０９６Ｂは、操作部１０２０の絶対位置を取得する。
【０１７５】
次いで、ステップＳ２１０７で、絶対位置取得部１０９６Ｂは絶対位置取得処理を終了する。
【０１７６】
前記の絶対位置取得処理により、ステップＳ２１０４又はステップＳ２１０８のいずれかで、絶対位置取得部１０９６Ｂは、操作部１０２０の絶対位置を取得する。
【０１７７】
判定部１０６０Ｂは、通知部１０７０を用いた通知を行うか（ここでは、通知部１０７０により操作部１０２０を振動させるか）否かを判定する。通知部１０７０による通知を行う場合は２つある。一つ目は第１実施形態の場合と同じで、ロボットアーム１００Ａに対する操作部１０２０の相対位置と、第一の相対位置とのずれが所定の距離を上回った場合である。もう一つは、第一測定部１０３０Ｂが、操作部１０２０の相対位置を取得できなかった場合である。
【０１７８】
以下、判定部１０６０Ｂが行う判定処理の流れを図２２に示す。
【０１７９】
ステップＳ３２０１で、判定部１０６０Ｂは判定処理を開始する。
【０１８０】
次いで、ステップＳ３２０２で、第一測定部１０３０Ｂは、操作部１０２０の相対位置を取得する。第一測定部１０３０Ｂが操作部１０２０の相対位置を取得できた場合はステップＳ３２０３へ分岐する。第一測定部１０３０Ｂが操作部１０２０の相対位置を取得できなかった場合はステップＳ３２０７に分岐する。
【０１８１】
次いで、ステップＳ３２０３からステップＳ３２０８までの各ステップは、第１実施形態におけるステップＳ１５０２からステップＳ１５０７と同じ処理である。
【０１８２】
なお、第１実施形態及び第２実施形態では、第一センサ１０９がカメラの場合を示しているが、これに限定されるものではない。例えば第一センサ１０９を距離センサとし、操作部３４２０の複数の表面点の位置を取得し、事前モデルとのフィッティングを行って位置及び姿勢を取得する構成としても構わない。
【０１８３】
このような構成を採ることによる第２実施形態の効果を４つ述べる。
【０１８４】
第一に、操作者は、操作感良く、操作部１０２０の操作を行うことができる。
【０１８５】
第二に、ロボットアーム１００Ａは、上限速度の範囲で移動するため、危険性が少ない。
【０１８６】
第三に、操作部１０２０の相対位置を低い精度で取得した（相対位置を精度良く測定できない）場合、通知部１０７０が、操作者に通知するので、又は、精度を要しない作業しか完成できない状況を構築するので、精度良く作業を行いたい部分では、カメラに対して操作部１０２０が追いついてから作業を行うことができる。
【０１８７】
例えば、柔軟物の挿入対象物の穴への挿入作業であれば、柔軟物を穴から１ｃｍほど離れた位置まで近づける作業は、精度を求めない作業部分である。その作業を行っている間は、操作者は、通知部１０７０からの通知を無視して、素早く作業を行う。一方、柔軟物と挿入対象物の穴との最後の位置合わせ、又は、穴に柔軟物を押し込む部分には、精度良く位置を取得する必要がある。精度良く位置が取得できなければ、教示した軌跡を使って再生を行うときに、柔軟物が穴にうまく入らない。この第２実施形態の構成では、穴に柔軟物を押し込む作業部分では、ロボットアーム１００Ａの手先１０１１が追従するのを待ってから作業を行うことになるので、精度が求められる作業は精度良く測定することができる。また、第１実施形態の第１変形例の場合でも、操作部１０２０の相対位置を低い精度で取得した（相対位置を精度良く測定できない）場合には、操作部１０２０の動きが拘束されるので、操作者は思い通りの作業を行うことが出来ないので、同様の効果がある。
【０１８８】
第四に、ロボットアーム１００Ａが周囲の物体と干渉しないかを確認することができる。例えば、操作部１０２０だけを動かして、その位置を天井に設置した第二センサ１０６０のカメラから取得して、ロボットアーム１００Ａを動かさなかった場合、軌跡の再生時にロボットアーム１００Ａがどのような姿勢を取るかが分からないまま教示を行うこととなる。よっていざ再生を行ってみると、ロボットアーム１００Ａの関節が地面にぶつかるような姿勢を取ることがある。この第二実施形態の構成では、教示時にロボットアーム１００Ａは再生時とほぼ同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム１００Ａが周囲の物体と干渉するような姿勢をとっていないかを確認して軌跡を作っておけば、再生時にも、ロボットアーム１００Ａが周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム１００Ａが移動する。ここで、「ほぼ」としたのは、若干、教示時のロボットアーム１００Ａの軌跡と再生時のロボットアーム１００Ａの軌跡がずれる場合があるためである。教示時に、ロボットアーム１００Ａの手先１０１１は、操作部１０２０に追従して移動するが、完全に追従ができるわけではない。操作部１０２０が急激に移動した場合には、追従が追いつけなかったり、ロボットアーム１００Ａの制御上の制約によって振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【０１８９】
なお、前記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０１９０】
本発明にかかるロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路は、ロボット本体であるロボットアームの手先と人が把持する操作部とが機構的に分離しており、人が操作部を操作することによってロボットアームを操作することができて、産業用ロボット又は生産設備などにおける可動機構のロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路として有用である。また、本発明にかかるロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路は、産業用ロボットに限らず、家庭用又は宇宙作業用のロボットのロボットアーム、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路として適用される可能性もある。
【符号の説明】
【０１９１】
９０  部品
９１  ハンド
１００，１００Ａ  ロボットアーム
１００ＰＡ，１００ＰＢ，１００ＰＣ，１００ＰＤ  ロボットアームの位置
１０１，１０１Ａ  制御部
９００  教示装置
１０００，１０００Ａ  ロボット装置
１０１０  ロボット
１０１１  手先
１０２０  操作部
１０２０ＰＡ，１０２０ＰＢ，１０２０ＰＣ，１０２０ＰＤ  操作部の位置
１０３０，１０３０Ｂ  第一測定部
１０４０，１０４０Ａ  第一相対位置算出部（移動量決定部の一例）
１０５０，１０５０Ａ  教示制御部
１０６０，１０６０Ａ  判定部
１０７０  通知部
１０８０，１０８０Ａ  軌跡生成部
１０９０  第一センサ（相対位置測定部の一例）
１０９１  位置情報取得部
１０９３  送信部
１０９４  受信部
１０９６，１０９６Ｂ  絶対位置取得部
１０９８  モータ
１０９９  エンコーダ
１１２０  固定部
１１２０ａ  第１穴
１１２０ｂ  第２穴
１１３０  再生制御部
１１４０  保持部
１１５０  第二測定部
１３１０  距離算出部
２０１１〜２０１３  特徴点
２１１０  コード巻取り部
２１１１  コード
２１２０  切換え部
７０１０  手先の中心位置を示す点
７０１１  手先の方向を示すベクトル
８０１０  操作部の方向を示すベクトル
８０１１  操作部の中心位置の点
【図１】
2013071231.tif 000003
【図２】
2013071231.tif 000004
【図３】
2013071231.tif 000005
【図４】
2013071231.tif 000006
【図５】
2013071231.tif 000007
【図６】
2013071231.tif 000008
【図７】
2013071231.tif 000009
【図８】
2013071231.tif 000010
【図９】
2013071231.tif 000011
【図１０】
2013071231.tif 000012
【図１１】
2013071231.tif 000013
【図１２】
2013071231.tif 000014
【図１３】
2013071231.tif 000015
【図１４】
2013071231.tif 000016
【図１５】
2013071231.tif 000017
【図１６】
2013071231.tif 000018
【図１７】
2013071231.tif 000019
【図１８】
2013071231.tif 000020
【図１９Ａ】
2013071231.tif 000021
【図１９Ｂ】
2013071231.tif 000022
【図２０】
2013071231.tif 000023
【図２１】
2013071231.tif 000024
【図２２】
2013071231.tif 000025