説明

ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路

【課題】教示時に安全で操作感が良く、作業軌跡を生成できる、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路を提供する。
【解決手段】ロボット1010Aが測定精度が悪い状態にあるときには、操作部1020を振動させることで人に通知するか、精度を要しない作業しか完成できない状況を構築するかをしておき、その間に、測定精度が良い状態になるようにロボット1010Aを移動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットアームの軌跡を教示するロボットアームの教示装置、教示方法、教示した軌跡に基づいてロボットアームを動作させるロボット装置、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路に関する。より具体的には、本発明は、ダイレクトティーチングによるロボットアームの軌跡を教示するか、又は、マスタースレーブによるロボットアームの軌跡の教示するロボットアームの教示装置、教示方法、教示した軌跡に基づいてロボットアームを動作させるロボット装置、ロボットアームの制御プログラム、並びに、集積電子回路に関する。
【背景技術】
【0002】
従来、製造現場でロボットが使われてきた。ロボットを使用する際には、ロボットに作業の軌跡を教える教示作業が必要になる。通常、教示はティーチングペンダント又はプログラミングを用いて行われてきた。少品種大量生産時代においては、教示した軌跡は長期間に渡って使用する。よって、教示に時間又は人件費等のコストがかかったとしても、1台の生産物当たりにすると教示のコストは低く、教示のコストが問題になりにくかった。
【0003】
今日の製造現場では製品の付加価値向上のために、多品種少量生産又は頻繁なモデルチェンジへの対応が求められる。その対応方法としてセル生産は有効である。セル生産で行われる作業には、ネジ締め作業、部品の嵌合作業、装着作業、又は、フレキシブル基板などの挿入作業、研磨作業などの多様な作業がある。また、セル生産では、生産する対象物が変わるごとに、又は、生産に使われる部品が変わるごとに、作業を行う位置又は向き、又は、作業を行う順番が変わるため複雑な対応が求められる。
【0004】
ロボットを用いてセル生産で行う作業を自動化しようとする場合、このような作業をロボットに教示しなければならない。しかし、その対象となる作業があまりに多様で複雑であるため、ティーチングペンダント又はプログラミングを用いる方法では限界がある。そこで、より簡単に、また低コストでロボットに教示を行う方法が求められる。
【0005】
ダイレクトティーチングは、ロボットに作業を簡単に教示することができる方法であり、複雑で多様な作業をロボットに教示する際に有効な方法である。ダイレクトティーチングでは、ロボットの操作部に人が加えた力に基づいて、ロボットの移動量及び移動方向を決定してロボットを移動する。そして、移動軌跡を教示データとして保持する。動作の再生時には教示データの移動軌跡を再現する。
【0006】
さて、フレキシブル基板のような柔軟物の挿入作業を行う際、作業者は柔軟物がたわむときに手に伝わる反力によって、柔軟物のたわみ具合又は位置を推測し、それによって複雑な作業を行う。フレキシブル基板の挿入に限らず、部品の嵌合作業のような細かい作業においても、操作者は手に伝わる反力によってその作業の状況を推測し、複雑な作業を行う。このように作業を行う際に、人が手にした部品から伝わる反力を感じることができることは重要である。
【0007】
ところで、ダイレクトティーチングでは、人がロボットを掴み、ロボットが部品を挟む。部品からの反力がロボットで吸収された場合、人は部品からの反力を感じることができない。特に、産業用ロボットなど重たいロボットでは、部品からの反力又は部品からの反力がロボットで吸収される場合が多い。この場合、ダイレクトティーチング時に、フレキシブル基板の挿入のような複雑な作業を達成することが困難になる。
【0008】
また、ダイレクトティーチングでは、人が加えた力に基づいてロボットが移動するが、思い通りにロボットを移動できる訳ではない。ロボットの動作は、ロボットの制御プログラムによってもたらさせたものであり、また、ロボットの重量、大きさ、又は、モータの回転性能等に基づく物理的な制約を受けたものになる(なお、サーボオフで動作する場合であっても、ロボットの自重による制約は受ける。)。これらの制約によって、人が加えた力が意図通りにロボットの動作に反映されるわけではない。よって、ロボットを介さずに通常の状況で作業をする場合に比べて、ダイレクトティーチングを行う際の教示作業では、人は思ったような作業をすることができず複雑な作業を達成することが困難になる。
【0009】
このように、ダイレクトティーチングでは人がロボットを移動して操作を行うが、その際の操作性が悪くなり複雑な作業を達成することが困難になる。
【0010】
この問題に対して、ロボット本体から、人が操作する際に握るロボットの操作部が、ある程度自由に動くようにして、操作性を向上する取り組みが行われている。
【0011】
特許文献1では、ロボットアームの手先の先端部に、ばねで、操作部が取り付けられた構成が提案されている。この方法では、操作部は、ある程度自由に動くことができるが、ばねによって拘束される範囲を超えて移動することはできない。
【0012】
一方、マスタースレーブは、ロボットの遠隔操作の方式である。教示時にマスターの動きに合わせてスレーブを動作させる。マスターロボットの操作部に人が加えた力に基づいて、マスターロボットも移動するし、スレーブ機も移動する(マスターロボットで教示した軌跡が、教示と同時にスレーブ機で再生させるとも言える。)。すなわち、マスターロボットを用いて軌跡の教示を行い、スレーブ機で教示した軌跡の再生を行が行われる。マスタースレーブにおいても、ダイレクトティーチングと同様に、作業の操作感が悪いと、人は思ったような作業をすることができず、複雑な作業を達成することが困難になる。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開平4−164584号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
ダイレクトティーチング又はマスタースレーブ等で、ロボットに作業を教示する際、操作感が悪いと、複雑な作業を教示することが困難であるという課題がある。そこで、教示時に安全で操作感が良いロボットが求められる。また、安全で操作感良く作業軌跡を生成できるロボット装置が求められる。
【0015】
本発明の目的は、教示時に安全で操作感が良く、作業軌跡を生成できる、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路を提供することにある。
【課題を解決するための手段】
【0016】
前記目的を達成するために、本発明は以下のように構成する。
【0017】
本発明の1つの態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置を提供する。
【0018】
本発明の別の態様によれば、前記態様に記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置を提供する。
【0019】
本発明の第5態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法を提供する。
【0020】
本発明のまた別の態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置を提供する。
【0021】
本発明のさらに別の態様によれば、コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラムを提供する。
【0022】
本発明のさらに別の態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路を提供する。
【発明の効果】
【0023】
本発明のロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路によれば、教示時に安全で操作感が良く、教示用の作業軌跡の生成を行うことができる。
【図面の簡単な説明】
【0024】
【図1】本発明の第1実施形態に対する比較例の構成において、ロボットと操作部とを分離した構成における、教示時のロボット装置の構成を示す図。
【図2】前記比較例の構成において、ロボットと操作部とを分離した構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図3】前記比較例の構成における、ロボットアームの追従を模式的に示す図
【図4】前記比較例の構成における、追従した軌跡を再生するときのロボットアームの追従を模式的に示す図
【図5】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部を示す斜視図
【図6】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部の縦断面を示す図
【図7】前記比較例の構成において、ロボットと操作部とを分離した構成における、固定部に第一センサと、操作部を固定したときの断面を示す図
【図8】前記比較例の構成において、ロボットと操作部とを分離した構成における、特徴点を示す図
【図9】前記比較例の構成において、ロボットと操作部とを分離した構成における、絶対位置取得部が行う絶対位置取得処理の流れを示すフローチャート
【図10】前記比較例の構成において、ロボットと操作部とを分離した構成における、ロボットアームの手先の位置を示す図
【図11】前記比較例の構成において、ロボットと操作部とを分離した構成における、ロボットアームの手先に対する操作部の位置を示す図
【図12】前記比較例の構成において、第一相対位置算出部が行う第一相対位置算出処理の流れを示すフローチャート
【図13】前記比較例の構成において、ロボットと操作部とを分離した構成における、操作部が、ある位置にあるときのロボットの姿勢を示す図
【図14】前記比較例の構成において、ロボットと操作部とを分離した構成における、操作部が、別のある位置にあるときのロボットの姿勢を示す図
【図15】本発明の第1実施形態の構成における、教示時のロボット装置の構成を示す図。
【図16】第1実施形態の構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図17】第1実施形態の構成における、判定部が行う判定処理の流れを示すフローチャート
【図18】第1実施形態の構成における、教示制御部が行う教示制御処理の流れを示すフローチャート
【図19A】第1実施形態の第1変形例の構成における、教示時のロボット装置の構成を示す図。
【図19B】第1実施形態の構成における、絶対位置取得部が行う絶対位置取得処理の流れを示すフローチャート
【図20】第2実施形態の構成における、教示時のロボット装置の構成を示す図。
【図21】第2実施形態の構成における、教示した軌跡の再生時のロボット装置の構成を示す図。
【図22】第2実施形態の構成における、判定部が行う判定処理の流れを示すフローチャート
【発明を実施するための形態】
【0025】
以下に、本発明にかかる実施の形態実施形態を図面に基づいて詳細に説明する。
【0026】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【0027】
本発明の第1態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置を提供する。
【0028】
本発明の第2態様によれば、前記相対位置測定部が測定した前記相対位置が前記所定範囲内に入るように、前記ロボットアームを移動させる移動量を決定する移動量決定部と、
前記移動量決定部が決定した前記移動量に基づいて前記ロボットアームを移動させる制御を行う教示制御部とをさらに備える、
第1の態様に記載のロボットアームの教示装置を提供する。
【0029】
本発明の第3態様によれば、前記操作部の位置を取得する第二測定部をさらに備え、
前記相対位置測定部が前記相対位置を取得できなかった場合、前記移動量決定部は、前記第二測定部が測定した前記操作部の位置に基づいて前記移動量を決定し、
前記所定範囲は、前記相対位置測定部によって前記相対位置を取得できる範囲である、
第1又は2の態様に記載のロボットアームの教示装置を提供する。
【0030】
本発明の第4態様によれば、第1〜3のいずれか1つの態様に記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置を提供する。
【0031】
本発明の第5態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法を提供する。
【0032】
本発明の第6態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置を提供する。
【0033】
本発明の第7態様によれば、コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラムを提供する。
【0034】
本発明の第8態様によれば、操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路を提供する。
【0035】
以下、本発明の実施形態について、図面を参照しながら説明する。
【0036】
各実施形態を説明するのに先立って、まず、ダイレクトティーチングを行うロボット装置において、ロボットと操作部とを分離する構成を比較例の構成として<ロボットアームと操作部とを分離した構成>の欄で説明する。次に、この比較例の構成の課題を説明し、その後にその課題を解決するための各実施形態の構成を説明する。
【0037】
<ロボットアームと操作部とを分離した構成>
ロボットのロボット本体の一例であるロボットアームと操作部とを物理的に分離し、操作感良く教示を行うことができる構成(比較例の構成)を、図1及び図2を用いて説明する。図1は、教示時におけるロボット装置1000を示す図であり、図2は、教示した軌跡を再生するときのロボット装置1000を示す図である。
【0038】
ロボット装置1000の概要を説明する。ロボット装置1000は、主に、ロボット1010と、操作部1020とで大略構成されている。ロボット1010は、ロボット本体の一例であるロボットアーム100と、制御部101とで構成されている。
【0039】
教示時には、ロボット1010のロボットアーム100と、操作部1020とは分離しており、操作者は操作部1020を手で掴んで操作する。
【0040】
教示した軌跡を再生するときには、図2に示すように操作部1020は、ロボット1010のロボットアーム100の手先1011に固定される。固定されることによって、操作部1020に対してロボットアーム100の手先1011は、操作部1020に対して、常に、所定範囲内の位置、すなわち、一定の相対位置を保つ。この相対位置を「第一の相対位置」と呼ぶことにする。再生時には、ロボットアーム100が移動しても、操作部1020に対する手先1011の位置は常に一定の範囲内の位置となる。
【0041】
教示時には、ロボットアーム100は操作部1020に追従して移動する。その際、操作部1020に対してロボットアーム100の手先1011の相対位置が、所定範囲内の位置、すなわち、第一の相対位置となるように追従する。例えば、ロボットアーム100の動きを模式的に示した図3において、操作部1020が、位置1020PAから位置1020PBに移動した場合、ロボットアーム100は、位置1010PAから位置1010PBに移動する。図4は、図3の軌跡を再生するときのロボットアーム100を示す図である。
【0042】
このような構成では、操作部1020は、ロボットアーム100から分離して移動するこができる。よって、操作者は、操作感良く、操作部1020の操作を行うことができる。
【0043】
図3の教示時においては、操作部1020とロボットアーム100とは分離していたが、図4の再生時には、操作部1020とロボットアーム100とは、固定部1120によって固定される。再生時には、ロボットアーム100は、位置1010PCから位置1010PDに移動する。また、操作部1020は、位置1020PCから位置1020PDに移動する。
【0044】
このような構成では、再生時にロボットアーム100は、教示時ロボットアーム100と同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム100が周囲の物体と干渉するような姿勢をとっていないかを確認して、操作者がロボットアーム100の軌跡を作っていけば、再生時にも、ロボットアーム100が周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム100が移動する。
【0045】
ここで、「ほぼ」としたのは、若干、教示時のロボットアーム100の軌跡と再生時のロボットアーム100の軌跡がずれる場合があるためである。教示時に、ロボットアーム100の手先1011は、操作部1020に追従して移動するが、完全に追従ができるわけではない。操作部1020が急激に移動した場合には、ロボットアーム100の追従が追いつけなかったり、ロボットアーム100の制御上の制約によってロボットアーム100が振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【0046】
以下、ロボット装置1000をより具体的に説明する。ロボット装置1000は、ロボット1010と、操作部1020と、固定部1120とで構成されている。更に、ロボット1010は、ロボットアーム100と、相対位置測定部の一例としての第一センサ1090と、第一測定部1030と、教示制御部1050と、軌跡生成部1080と、モータ1098と、エンコーダ1099と、位置情報取得部1091と、絶対位置取得部1096と、再生制御部1130と、移動量決定部の一例としての第一相対位置算出部1040とで構成されている。
【0047】
操作部1020は、操作者が直接手で持って移動させる部材である。操作者は、教示したい軌跡に沿って操作部1020を動かすことで教示を行う。この比較例の構成の事例では、操作部1020の形状は、一例として、12cm×3cm×3cmの直方体である。図2の向きでは、操作部1020のX方向、Y方向、及び、Z方向の長さがそれぞれ、12cm、3cm、及び、3cmの直方体である。操作部1020の先端(図2においては、操作部1020の右端。すなわち、操作部1020の固定部1120で固定されない側の端)には、フレキシブルテーブル、又は、ネジなどの部品(作業対象)を固定する。
【0048】
図1には、立方体の部品90がハンド91で固定された場合を示している。なお、操作部1020は、操作者が直接移動できればよく、例えば、操作者の腕、又は、手、又は、指に縛りつけることによって、直接、手で持たずに移動する構成であっても構わない。また、操作部1020は、操作者の手に装着する手袋に固定されているような構成であっても構わない。
【0049】
ロボットアーム100は、操作部1020に対して手先1011が第一の相対位置になるように移動するロボット本体である。ロボット本体の具体的な例としては、ロボットアームである。また、手先1011は、ロボットアーム100を制御することで移動する部分である。具体的には、例えば、ロボットアーム100の先端である。
【0050】
第一センサ1090は、手先1011に固定されて、操作部1020に対する手先1011の相対位置を取得する際に使用するセンサである。本構成では、第一センサ1090が、一例として、手先1011に固定されたカメラである場合について説明する。第一センサ1090は、具体的には、例えば、2048画素×2048画素を有するCCDカメラである。本構成では、カメラで取得した画像に対して、後述の第一測定部1030における画像処理を施すことで手先1011に対する操作部1020の相対位置の取得を行う。
【0051】
よって、第一センサ1090は、手先1011に対する操作部1020の相対位置の取得部の一例である。ここでは、第一センサ1090の外形は、一例として、2cm×2cm×2cmとする。図2の向きでは、一例として、X、Y、Z方向の長さが各々2cmの立方体とする。また、カメラが撮影する向きは、図2のX方向のプラス側の向きとする。
【0052】
固定部1120は、ロボットアーム100の手先1011に対して操作部1020を所定の相対位置になるように固定する部材である。本構成では、第一センサ1090は手先1011に固定されている。よって、第一センサ1090に対して操作部1020を固定部1120で手先1011に固定することで、ロボットアーム100の手先1011に対して操作部1020を固定部1120で固定する。説明を簡単にするために、第一センサ1090と操作部1020とを、それぞれ固定部1120のそれぞれの端部にはめ込んで固定する構成を説明する。
【0053】
図5は、固定部1120を示す斜視図である。図6は、固定部1120の面2011に対する断面を示す図である。固定部1120の外形は、一例として、10cm×5cm×5cmの直方体である。図2及び図5では、X方向、Y方向、Z方向の長さがそれぞれ、10cm、5cm、5cmの直方体である。
【0054】
固定部1120のX方向のプラス側(図6の右端)には、操作部1020をねじ込む第1穴1120aが設けられている。第1穴1120aの大きさは、操作部1020の外形の大きさである。すなわち、一例として、図2の操作部1020のY方向及びZ方向の長さである3cm×3cmに合わせて設けられている。図6における点2012から点2014までの距離は3cmである。また、第1穴1120aに操作部1020をねじ込む深さは2cmとなっている。図6における点2012から点2013までの距離t1は2cmである。第1穴1120aの周りには、はめ込んだものが落ちないように柔軟物であるゴム92が張られている。図6で斜線の部分は、ゴムが張られる範囲である。
【0055】
固定部1120のX方向でマイナス側(図6の左端)には、第一センサ1090をねじ込む第2穴1120bが設けられている。第2穴1120bの大きさは第一センサ1090の外形の大きさである。すなわち、図2の第一センサ1020のY方向及びZ方向の長さである2cm×2cmに合わせて設けられている。図6における点2015から点2016までの距離t2は2cmである。また、第2穴1120bに第一センサ1090をねじ込む深さは2cmとなっている。
【0056】
図6における点2015から点2017までの距離は2cmである。第2穴1120bの周りには、ねじ込んだものが落ちないように柔軟物であるゴム92が張られている。図7は、固定部1120の第2穴1120bに第一センサ1090を固定するとともに、第1穴1120aに操作部1020を固定したときの断面図を示す。図7において、点7010はロボットアーム100の手先1011の中心の位置(この発明では、手先1011の位置というときは、代表例として、手先1011の中心の位置のことを指すものとする。)を示す。点8011は、操作部1020の中心の位置を示す。このときの点7010と点8011の距離は、一例として13cmである。これは、
【0057】
(数1)
{(固定部1120のX方向の長さ)+(操作部1020のX方向の半分の長さ)−(重複分の長さ)}
.......(式1)
によって算出した長さであり、具体的には、10+5−2=13となる。すなわち、第一の相対位置においては、操作部1020の中心位置の点8011に対して、図2のX軸のマイナス方向に13cmの位置がロボットアーム100の手先1011の位置になる。
【0058】
ここでは、説明を簡単にするために、操作部1020を固定部1020の第1穴1120aにねじ込む構成を説明したが、他のいかなる構成であっても構わない。
【0059】
エンコーダ1099は、ロボットアーム100の各関節にそれぞれ備えられて、各関節の角度を取得する。
【0060】
一例として、ロボットアーム100は、複数の多関節機構を有する多関節ロボットアームであって、複数の関節軸を中心に2つのリンク702,703が回転駆動する。
【0061】
具体的には、ロボットアーム100は、6自由度の多リンクのマニピュレータである。ロボットアーム100は、手先1011に手首部701を有する前腕リンク702と、前腕リンク702の基端に回転可能に先端が連結される上腕リンク703と、上腕リンク703の基端が回転可能に連結支持される台部704とを備えている。台部704は、一定位置に固定されているが、図示しないレールに移動可能に連結されていても良い。手首部701は、一例として、第4関節部と、第5関節部と、第6関節部との3つの互いに直交する回転軸を有しており、前腕リンク702に対する手先1011の相対的な姿勢(向き)を変化させることができる。すなわち、第4関節部は、手首部701に対する手先1011の横軸周りの相対的な姿勢を変化させることができる。第5関節部は、手首部701に対する手先1011の、第4関節部の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第6関節部710は、手首部701に対する手先1011の、第4関節部の横軸及び第5関節部の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク702の他端は、上腕リンク703の先端に対して第3関節部周りに、すなわち、第4関節部の横軸と平行な横軸周りに回転可能とする。上腕リンク703の他端は、台部704に対して第2関節部周りに、すなわち、第4関節部の横軸と平行な横軸周りに回転可能とする。さらに、台部704の上側可動部は、台部704の下側固定部に対して第1関節部周りに、すなわち、第5関節部の縦軸と平行な縦軸周りに回転可能としている。
【0062】
この結果、ロボットアーム100は、合計6個の軸周りに回転可能として6自由度の多リンクマニピュレータを構成している。
【0063】
ロボットアーム100の各軸の回転部分を構成する各関節部には、関節部駆動用のモータ1098のような回転駆動装置と、モータ1098の回転軸の回転位相角(すなわち関節角)を検出して位置情報を出力するエンコーダ1099(実際には、ロボットアーム100の各関節部の内部に配設されている)とを備えている。モータ1098(実際には、ロボットアーム100の各関節部の内部に配設されている)は、各関節部を構成する一対の部材(例えば、回動側部材と、該回動側部材を支持する支持側部材)のうちの一方の部材に備えられる、モータドライバの機能をそれぞれ内蔵する教示制御部1050A又は再生制御部1130により駆動制御される。各関節部の一方の部材に備えられたモータ1098の回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【0064】
位置情報取得部1091は、ロボットアーム100の手先1011の位置および姿勢を取得する。具体的には、位置情報取得部1091は、エンコーダ1099によって取得した各関節の関節角と、各関節の長さ(位置情報取得部1091の内部記憶部に予め記憶された情報)とにより手先1011の位置および姿勢を取得する。
【0065】
第一測定部1030は、第一センサ1090で撮影した画像に基づいて、操作部1020に対する手先1011の相対位置を取得する。一般に、カメラ上で撮影したn点(ただし、n>0)の特徴点の位置から、カメラの姿勢を推定する問題をPnP問題(PERSPECTIVE−n−POINT PROBLEM)と言う。本構成では、第一測定部1030によりPnP問題を解くことによって、第一センサ1090に対する操作部1020の位置を第一測定部1030で取得する。そこから、操作部1020に対するロボットアーム100の手先1011の位置を第一測定部1030で取得する。第一センサ1090は、手先1011に対して固定されているので、第一センサ1090に対する操作部1020の相対位置が分かれば、手先1011に対する第一センサ1090の相対位置も分かる。ここでは簡単化のために、第一センサ1090の位置を手先1011の位置と同一とする。すなわち、手先1011の位置に第一センサ1090が取り付けられているものとする。
【0066】
nが3点のときには、3点が同一直線上にあれば、PnP問題は第一測定部1030で解くことができる。PnP問題の詳細については、非特許文献1に記載されている。
【0067】
【非特許文献1】JONATHAN FABRIZIO, JEAN DEVARS,” AN ANALYTICAL SOLUTION TO THE PERSPECTIVE−N−POINT PROBLEM FOR COMMON PLANAR CAMERA AND FOR CATADIOPTRIC SENSOR”, Electronic version of an article published as Internayional Journal of Image and Graphics, Volume 8,Issue 1, Year 2008, Pages 135−155
【0068】
本構成では、操作部1020の手先側の表面(例えば図7の左端面)には、相対位置を取得するために使用する特徴点が3点以上印刷されているか、又は、3点以上の特徴点のシールが貼り付けられている。図8は、図2における第一センサ1090の位置から操作部1020の端面を見た様子を示す図である。操作部1020には、特徴点2011〜2013がプリントされている。各特徴点2011〜2013は、それぞれ赤、青、緑に着色されており、操作部1020の特徴点以外の部分は、特徴点の色以外の色が着色されており、特徴点が抽出しやすくなっている。また、特徴点2011〜2013は同一直線上にある。各特徴点は、一例として半径2mmの円である。特徴点2012は、操作部1020の表面の中心にあり、特徴点2011、2013は、特徴点2012からそれぞれ図2のY方向のプラス側、マイナス側の向きに所定距離例えば1cmずつ離れた位置にある。
【0069】
ここで、第一測定部1030の画像処理のみでは、操作部1020の絶対位置(作業空間における位置)を取得することが出来ない。例えば、第一センサ1090と、操作部1020それぞれの位置が、図1の位置より10cm下にあった時に取得される画像と、それぞれが図1の位置で取得される画像は同じ画像になるためである。画像処理で取得されるのは、第一センサ1090に対する操作部の相対位置である。
【0070】
絶対位置取得部1096は、操作部1020の絶対位置を取得する。
【0071】
絶対位置は、作業空間に固定された座標空間の絶対座標における位置である。ここでは、地面(地球)に対して固定された座標空間を絶対空間とする。また、絶対作業における原点は、ロボットアーム100の基端の台座704の回転支点とする。図1におけるX軸、Y軸、Z軸は、絶対空間における軸方向を示す。絶対座標における原点は、ロボットアーム100の基端の台座704の回転支点の位置だが、ロボットアーム100の図面と重なるため、図面上では、若干ずらした位置に軸を記載している。
【0072】
図9は、絶対位置取得部1096が行う絶対位置取得処理の流れを示す図である。
【0073】
図9のステップS601で、絶対位置取得部1096は絶対位置取得処理を開始する。
【0074】
次に、ステップS602で、位置情報取得部1091は、ロボットアーム100の手先1011の位置を取得する。具体的には、ロボットアーム100の各関節の角度を取得し、取得した角度からロボットアーム100の手先位置を算出する。なお、各関節の角度は、各関節に予め取り付けられたエンコーダ1099によって取得する。図10は、ロボットアーム100の手先1011の位置を示す図である。この比較例の構成では、簡単化のためにロボットアーム100は操作部1020のXY平面上しか移動しない場合を説明する。ただし、XYの原点Oは、ロボットアーム100の基端の台部704の回動支点とする。
【0075】
図10において、点7010は、手先1011の中心位置を示す点である。ベクトル7011は、手先1011の方向を示すベクトルである。前記ステップS602では、点7010の位置(X_E、Y_E)と、X軸のプラス方向に対してベクトル7011がなす角度αをで取得する。なお、位置(X_E、Y_E)および角度αは、位置情報取得部1091によって取得する手先1011の位置および姿勢である。
【0076】
次いで、ステップS603で、第一測定部1030は、第一センサ1090で撮影した画像に基づいて、ロボットアーム100の手先1011に対する操作部1020の相対位置を取得する。手先1011に対する相対座標は、常に、手先1011と共に移動する座標空間である。原点は手先1011とし、手先1011の位置が移動すれば、(絶対座標空間における)原点の位置も移動する。また、手先1011が回転すれば(絶対座標空間における)軸の方向も回転する。図11は、ロボットアーム100の手先1011に対する操作部1020の位置を示す図である。手先1011の位置を中心(原点)とし、ベクトル7011の方向をx軸方向とし、x軸方向と直交する方向をy軸方向とし、x軸方向及びy軸方向と直交する方向をz軸方向とするxyzの座標空間における操作部1020の位置を取得する。
【0077】
なお、実際には、手先1011の位置と第一センサ1090のカメラ焦点の位置との間には誤差があり、その分の誤差を考慮して、移動したい位置を原点とするが、ここでは簡単化のため、カメラ焦点の位置が、手先1011の位置と一致しているものとして、説明を行う。
【0078】
このステップS603では、操作部1020の中心位置である点8011のE点に対する位置(x_H、y_H)と、x軸のプラス方向に対して、操作部1020がなす角度βを第一測定部1030によって取得する。すなわち、図中のE点に取り付けられている第一センサ1090によって、操作部1020に取り付けられた特徴点の位置を抽出することで、図中のE点のxy座標系における操作部1020の位置及び姿勢を第一測定部1030で取得する。第一測定部1030で取得した姿勢が、角度βである。
【0079】
次いで、ステップS604では、絶対位置取得部1096は、第一測定部1030で取得した操作部1020の位置及び姿勢に基づいて、操作部1020の絶対位置を取得する。具体的には、操作部1020の中心位置の点8011の位置(X_H,Y_H)の位置は、前記の条件により次式となる。なお、図11に補助線を示す。
【0080】
(数2)
X_H=X_E+x_H×cosα―y_H×sinα
Y_H=Y_E+x_H×sinα+y_H×cosα
.......(式2)
また、操作部1020が、X軸となす角θを次式となる。
【0081】
(数3)
θ=α+β
.......(式3)
前記式2、式3より、操作部1020の中心位置の点8011の位置(X_H,Y_H)、操作部1020がX軸となす角θの値を絶対位置取得部1096で算出する。
【0082】
最後に、ステップS607で、絶対位置取得部1096は、絶対位置取得処理を終了する。
【0083】
第一相対位置算出部1040は、ロボットアーム100の手先1011の移動位置(移動量又は移動方向)を決定する。既に説明したように、ロボットアーム100を移動する位置は、手先1011が、操作部1020に対して第一の相対位置になる位置である。よって、第一相対位置算出部1040は、操作部1020に対する第一の相対位置を算出する。第一相対位置算出部1040は、まず、第一測定部1030を用いて操作部1020の位置を取得し、次に、操作部1020に対するロボットアーム100の手先1011の位置が、第一の相対位置となるロボットアーム100の手先1011の位置を決める。図12は、第一相対位置算出部1040が行う第一相対位置算出処理の流れを示す図である。
【0084】
図12のステップS3101で、第一相対位置算出部1040は第一相対位置算出処理を開始する。
【0085】
次に、ステップS3104で、絶対位置取得部1096は、図9のS601〜S607の処理に基づき、操作部1020の絶対位置を取得する。
【0086】
次に、ステップS3105で、第一相対位置算出部1040は、手先1011の移動位置を決定する。概要で述べたように、第一相対位置算出部1040は、操作部1020に対して固定時のロボットアーム100の手先1011の位置を、移動位置とする。また、固定部1020の説明で述べたように、操作部1020に対して、図2のX軸のマイナス方向に、ロボットアーム100の手先1011の中心の位置と操作部1020の中心の位置との距離(例えば13cm)だけ離れた位置が、ロボットアーム100の手先1011の固定時の位置になる。図11においては、操作部1020の方向は、X軸となす角θの方向(ベクトル8010の方向)である。よって、操作部1020の中心位置8011から、ベクトル8010の逆の方向へ、ロボットアーム100の手先1011の中心の位置と操作部1020の中心の位置との距離(例えば13cm)だけ離れた位置が、移動位置となる。移動位置を(X_H‘、Y_H’)とした場合、その位置は次式となる。
【0087】
(数4)
X_Hd‘=X_H―13×cosθ
Y_Hd‘=Y_H―13×sinθ
.......(式4)
次に、ステップS3106で、第一相対位置算出部1040は、ステップS3105で算出した移動位置を、第一相対位置算出部1040から教示制御部1050及び軌跡生成部1080に送信する。
【0088】
最後に、ステップS3107で、第一相対位置算出部1040は第一相対位置算出処理を終了する。
【0089】
モータ1098は、ロボット1010の各関節に取り付けられた関節駆動装置の一例である。図1では、1つの四角形のブロックでモータ1098を表現しているが、実際には、ロボットアーム100の各関節に対して、ロボットアーム100の内部に取り付けられている。
【0090】
教示制御部1050は、教示時のロボット制御を行う。第一相対位置算出部1040から受信したロボットアーム100の手先1011の位置に、実際に手先1011を移動するように各関節のモータ1098の制御を行う。具体的には、ロボットアーム100の各関節に取り付けられたモータ1098をそれぞれ正逆回転させて、エンコーダより算出されるロボットアーム100の手先1011の位置が第一相対位置算出部1040から受信した位置となるように移動する制御を行う。
【0091】
軌跡生成部1080は、第一相対位置算出部1040から受信したロボットアーム100の手先1011の位置を時系列順に順次記憶する。軌跡生成部1080では、第一相対位置算出部1040から受信した位置の情報の一つ一つを、レコードとして記憶する。
【0092】
なお、軌跡生成部1080は、ロボットアーム100の手先1011の位置を格納する替わりに、ロボットアーム100の各関節の角度の時系列データを格納する構成であっても構わない。また、手先1011の位置を格納する替わりに、操作部1011の位置を格納する構成であっても構わない。また、ここでは、ダイレクトティーチングの場合について説明したが、マスタースレーブにおいては、教示はマスタ側のロボットで行う。教示した軌跡は、時系列データとして保持する替わりに、随時、マスタ側のロボットからスレーブ側ロボットに送信する構成とする。
【0093】
再生制御部1130は、教示した軌跡を再生するときに、ロボットアーム100Aの各関節のモータ1098の駆動制御を行う。再生制御部1130は、軌跡生成部1080が保持するロボットアーム100の手先1011の位置の時系列データの各位置に、順番に、ロボットアーム100の手先1011を移動する制御を行う。具体的には、ロボットアーム100の各関節に取り付けられたモータ1098をそれぞれ正逆回転させて、エンコーダより算出されるロボットアーム100の手先1011の位置が軌跡生成部1080より取得した時系列データの各位置となるように移動する制御を行う。
【0094】
なお、軌跡生成部1080は、ロボットアーム100の手先1011の位置を格納する替わりに、ロボットアーム100の各関節の角度の時系列データを格納した構成では、角度を時刻順に再現する。また、操作部1020の位置を格納した構成では、操作部1020の位置からロボットアーム100の手先1011の位置を算出して、再現を行う。また、マスタースレーブにおいては、マスター側ロボットから受信したロボットアームの位置をスレーブ側ロボットで再現する。
【0095】
このような比較例の構成の構成を採ることによる効果を3つ述べる。
【0096】
第一に、操作者は、操作感良く、操作部1020の操作を行うことができる。これは、操作部1020が、ロボットアーム100と分離して移動できるので、操作部1020が物体と衝突したときに、操作者は、その衝突による衝撃を操作部1020を通して感じることができるからである。
【0097】
第二に、操作部1020の位置を精度良く測定できる。例えば、カメラが天井に設置された場合、カメラと撮影対象との距離が大きく、撮影誤差がでやすい。一般に、カメラで特徴点の位置を抽出する場合、撮影対象物が所定の距離から離れるに従って測定精度が悪くなる。本構成では、カメラである第一センサ1090は手先1011に固定されているため、常に、操作部1020に対して近距離で、ほぼ一定の距離の位置にあるため、操作部1020の位置を精度良く取得することができる。
【0098】
第三に、ロボットアーム100が周囲の物体と干渉しないかを、操作者は確認することができる。例えば、前記比較例の構成とは異なり、操作者が操作部1020だけを動かして操作部1020の位置を天井に設置したカメラから取得し、ロボットアーム100を動かさなかった場合、軌跡の再生時に、ロボットアーム100がどのような姿勢を取るかが分からないまま、操作部1020で教示を行うこととなる。よって、いざ再生を行ってみると、ロボットアーム100の関節が地面にぶつかるような姿勢を取ることがある。
【0099】
これに対して、前記比較構成では、教示時にロボットアーム100は、再生時とほぼ同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム100が周囲の物体と干渉するような姿勢をとっていないかを操作者が確認して軌跡を操作部1020で作っておけば、再生時にも、ロボットアーム100が周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム100が移動する。ここで、「ほぼ」としたのは、若干、教示時のロボットアーム100の軌跡と再生時のロボットアーム100の軌跡とがずれる場合があるためである。教示時に、ロボットアーム100の手先1011は、操作部1020に追従して移動するが、完全に追従ができるわけではない。操作部1020が急激に移動した場合には、追従が追いつけなかったり、ロボットアーム100の制御上の制約によって振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【0100】
前記比較構成では、操作部1020は、従来のダイレクトティーチングと比べて、素早く自由に動かすことができる。そのことによって、ロボットアーム100が非常に高速に移動する。
【0101】
しかしながら、以下のような課題が存在する。
【0102】
図13は、操作部1020が、実線で示す、ある位置にあるときのロボットアーム100の姿勢を示す図である。この操作部1020を、図中の実線の位置Aから点線の位置Bに移動した場合の、ロボットアーム100の位置を図14に示す。図14において、前記移動前のロボットアーム100の位置Cと操作部1020の位置Aとを点線で示す。移動後のロボットアーム100の位置Dと操作部1020の位置Bを実線で示す。この図14は、操作部1020を位置Aから位置Bまで若干動かしただけであっても、ロボットアーム100はその位置が位置Cから位置Dまで大きく移動することを示す。
【0103】
従来のダイレクトティーチングであれば、操作部1020はロボットアーム100につながっているので、このようにロボットアーム100大きく移動する場合には操作感が悪くなり、操作者は自然と移動速度を遅くする。しかし、前記比較例の構成では、操作感が良い状態が続くので、操作者が操作部1020を使用して手先の作業に集中していると、ロボットアーム100の動きに気が付かず操作部1020を動かし続けるので危険なことがある。例えば、操作者による操作部1020の移動に伴い、ロボットアーム100が高速で操作者1010又は周囲の人に衝突する危険性がある。また、操作部1020を、さらに図14中の矢印の方向に回転すれば、ロボットアーム100は、実線で示す位置よりもさらに下側に、地面を掘り返しながら移動することになり危険である。あるいは、ロボットアーム100のモータ1098に過負荷が作用して故障する可能性がある。
【0104】
一方で、ロボットアーム100の移動速度に上限を設けて、ロボットアーム100が操作部1020に遅れてついてくる構成にした場合には、操作部1020を高速で動かしても、ロボットアーム100はその上限速度以下で移動することになり、安全性は向上する。しかし、操作部1020を高速で動かす時間が長くなるに従って、操作部1020に対して、ロボットアーム100の手先1011の位置は操作部1020から離れていくことになる。先述した通り、第一センサ1090に対して、操作部1020の位置が離れるに従って、第一センサ1090の測定精度は悪くなる。よって、教示される軌跡自体の精度が低下する。
【0105】
さて、操作者が教示時に取得したい作業軌跡には、精度良く位置を測定したい作業部分と、それほど精度良い位置が求められない作業部分とがある。例えば、柔軟物の挿入作業であれば、柔軟物を挿入対象物の穴から例えば1cmほど離れた位置まで近づける作業は、精度を求めない作業部分である。一方、柔軟物と挿入対象物の穴との最後の位置合わせ部分、又は、穴に柔軟物を押し込む部分は、精度良く位置を取得する必要がある作業部分である。精度良く位置が取得できなければ、教示した軌跡を使って再生を行うときに、柔軟物が穴にうまく入らない。
【0106】
先述したロボットアーム100に上限速度を設けた場合では、操作部3420を精度良く測定できない期間が生じる。そのような期間に、柔軟物の最後の位置合わせ、又は、穴に柔軟物を押し込む作業が行われると、精度を必要とする作業部分を、精度良く測定できなくなる。そのため、測定自体をやり直さなければならない。
【0107】
<第1実施形態>
前記比較例の構成の課題を解決する本発明の第1実施形態の構成を図15及び図16を用いて説明する。図15は、教示時におけるロボット装置1000Aを、図16は、教示した軌跡の再生時のロボット装置1000Aを示す図である。
【0108】
前記した図1〜図14までの比較例の構成の場合と同様の部又は部材又は装置は、説明を省略する。
【0109】
前記した比較例の構成と異なる部又は部材又は装置は、移動量決定部の一例としての第一相対位置算出部1040Aと、軌跡生成部1080Aと、保持部1140と、教示制御部1050Aと,距離算出部1310と、判定部1060と、通知部1070と、送信部1093と、受信部1094とである。
【0110】
まず、ロボット装置1000Aの概要を説明する。
【0111】
前記比較例の構成では、ロボットアーム100に上限速度が無い。そして、ロボットアーム100の手先1011の位置が、常に、操作部1020に対して一定の位置になるように追従している。一方、第1実施形態のロボット1010Aのロボットアーム100Aには上限速度を設ける。そのため、ロボットアーム100Aの手先1011の位置は、いつでも操作部1020に対して第一の相対位置にいることはできない。すなわち、ロボットアーム100Aに上限速度を設けることで、操作部1020にロボットアーム100Aが追い付けない場合が発生する。その場合、少し前の時刻に操作部1020が位置していた位置に対して、ロボットアーム100Aの手先1011を固定した場合の位置が、移動目標位置となる。
【0112】
前記比較例の構成では、操作部1020の位置に対して、ロボットアーム100の手先1011の位置を決めて、すぐにその位置に移動させている。これに対して、第1実施形態では、手先1011の位置を、次々に、軌跡生成部1080Aのデータベースにレコードとして蓄積する。そして、ロボットアーム100Aが操作部1020に追い付いて追従を行う場合には、データベースの最新のレコードの手先1011の位置にロボットアーム100Aが移動をする。ロボットアーム100Aが上限速度では追い付けなくなったら、データベースの中のまだ移動していないレコードを基に、ロボットアーム100Aが順番に移動していく。そして、ロボットアーム100Aがデータベースの最新のレコードに追い付いたら、それ以降は、ロボットアーム100Aは最新のレコードに基づいて移動を行う。軌跡生成部1080Aは、データベースを保持し、保持部1140は、データベースのどのレコードまで移動したかの情報を保持する。
【0113】
さて、操作部1020の移動に対して、ロボットアーム100Aの手先1011の追随が遅れていくと、操作部1020が、手先1011に固定された第一センサ1090で撮影しにくい位置に移動する場合がある。撮影しにくい位置とは、ここでは、操作部1020の位置を第一センサ1090で精度良く取得できない位置のことである。そのような位置に操作部1020があるか否かを判断するのが判定部1060である。また、判定部1060での判定結果を基に、前記撮影しにくい位置にあることの通知を操作者に通知するのが通知部1070である。判定部1060での判定結果としての通知の指令は、判定部1060から送信部1093に入力される。送信部1093は、通知部1070に、通知の指令を送信する。送信部1093が送信した通知の指令を受信するのが受信部1094である。受信部1094で受信した通知の指令に基づき、通知部1070で、前記撮影しにくい位置にあることの通知を操作者に通知する。
【0114】
以上が、ロボット1010Aの概要である。
【0115】
以下、前記比較例の構成と異なる部又は部材又は装置である、第一相対位置算出部1040Aと、軌跡生成部1080Aと、保持部1140と、教示制御部1050Aと、距離算出部1310と、判定部1060と、通知部1070と、送信部1093と、受信部1094とを説明する。
【0116】
なお、ロボット装置1000Aは、主に、ロボット1010Aと、操作部1020と、通知部1070と、受信部1094とで大略構成されている。ロボット1010Aは、ロボット本体の一例であるロボットアーム100Aと、制御部101Aと、第1センサ1090と、モータ1098と、エンコーダ1099とで構成されている。制御部101Aは、位置情報取得部1091と、第一測定部1030と、絶対位置取得部1096と、再生制御部1130と、第一相対位置算出部1040Aと、軌跡生成部1080Aと、保持部1140と、教示制御部1050Aと、距離算出部1310と、判定部1060と、送信部1093とで構成されている。なお、ロボット装置1000Aにおいて、再生制御部1130以外の部及び部材及び装置をロボットアームの教示装置900とする。
【0117】
第一相対位置算出部1040Aは、前記比較例の構成における第一相対位置算出部1040と同様に、操作部1020に対するロボットアーム100Aの手先1011の位置が第一の相対位置となる、ロボットアーム100Aの手先1011の位置を決める。
【0118】
前記比較例の構成では、第一相対位置算出部1040で算出した手先1011の位置を教示制御部1050及び軌跡生成部1080に送信しているが、第1実施形態では、第一相対位置算出部1040Aで算出した手先1011の位置を、軌跡生成部1080Aと、距離算出部1310を介して判定部1060とに送信する。
【0119】
保持部1140は、教示制御部1050Aからの情報を基に、軌跡生成部1080Aが保持する何番目の位置データまでを移動し終えたかを保持して、保持した情報を教示制御部1050Aに出力する。保持部1140には、初期状態では値「0」が格納されている。例えば、4番目のレコードの位置までは移動して、5番目のレコードの位置までは移動し終えておらず、その中間の位置にいる場合には、値「4」が保持部1140に格納されることになる。
【0120】
通知部1070は、第一センサ1090が精度良く測定を行えないと判定部1060で判定された場合に、操作者に情報を通知する。ここでは、通知部1070の一例として、操作部1020に取り付けられたバイブモータを振動させることで、現在、精度良く測定を行えないことの通知を操作者に行なう。
【0121】
なお、通知部1070が送る通知内容は、振動に限らず、音を鳴らすなどの通知であっても構わない。また、人が気づき難い方法での通知であっても構わない。例えば 、
人が作業への集中を妨げる音楽(又はリラックスする音楽)を流したりするなどでも良い。直接、人が理解できる内容である必要はなく、照明を徐々に暗くしたりするものでも良い。
【0122】
送信部1093は、判定部1060から精度良く測定を行えないことの通知の指令の情報を受け取り、受信部1094に向けて送信する。送信部1093は、具体的には、無線通信の送信部である。
【0123】
受信部1094は、送信部1093が送信した通知の指令を操作部1020で受信する。受信部1094は、具体的には、無線通信の受信部である。受信した通知の指令は、通知部1070に送られて、通知部1070で通知を行なう。
【0124】
距離算出部1310は、第一相対位置算出部1040A及び位置情報取得部1091からの情報に基づき、第一相対位置算出部1040Aが算出した、現在の操作部1020に対する固定時のロボットアーム100の手先1011の位置に対する、現在の実際のロボットアーム100の手先1011の位置の距離を算出して、算出結果を判定部1060に出力する。
【0125】
判定部1060は、位置情報取得部1091及び第一測定部1030からの情報に基づき、第一測定部1030が予め定めた精度で測定が行えているか否かを判定する。ここでは、判定部1060は、ロボットアーム100Aに対する操作部1020の相対位置と、第一の相対位置とのずれが所定の距離以下であれば、精度良く測定が行えると判定し、所定の距離より大きければ、精度良く測定が行えないと判定する。判定部1060は、精度良く測定が行えないと判定したとき、通知を行なうべく、通知の指令を送信部1093に出力する。
【0126】
以下、判定部1060が行う判定処理の流れを図17に示す。
【0127】
ステップS1501で、判定部1060は判定処理を開始する。
【0128】
次に、ステップS1502で、第一相対位置算出部1040Aは、現在の操作部1020に対する第一の相対位置を取得する。
【0129】
次いで、ステップS1503で、位置情報取得部1091は、現在のロボットアーム100の手先1011の位置を取得する。
【0130】
次いで、ステップS1504で、距離算出部1310は、ステップS1503における実際のロボットアーム100の手先1011の位置と、ステップS1502で取得した第一の相対位置との距離を算出する。すなわち、距離算出部1310は、移動目標位置と、現在位置との距離を算出する。この距離が小さいほど、ロボットアーム100の手先1011は、第一の相対位置に近い位置にいることになる。すなわち、撮影が正確に行える位置にいることになる。逆に、この距離が大きいほど、撮影が不正確な位置にいることになる。
【0131】
ステップS1505では、判定部1060は、ステップS1503で取得した距離が予め設定した閾値よりも大きいか否かを判定する。この閾値は、撮影対象が、撮影中心からどれだけ離れると、撮影が不正確になるかに基づいて予め決定する。これをより詳しく説明する。ロボットアーム100Aの移動目標位置と、ロボットアーム100Aの現在位置との距離が予め設定した閾値よりも小さい場合、第一センサ1090と、操作部1020との距離も小さい。よって、第一センサ1090は、操作部1020の位置を精度良く測定することができる。しかし、ロボットアーム100Aの移動目標位置と、ロボットアーム100Aの現在位置との距離が予め設定した閾値よりも大きい場合、第一センサ1090と、操作部1020とのよりも大きい。よって、第一センサ1090は、操作部1020の距離を精度良く測定できなくなる。例えば、第一センサ1090がカメラの場合は、操作部1020の特徴点2011〜2013の輪郭がボケるためである。これより、ステップS1503で取得した距離が予め設定した閾値よりも大きいと判定部1060で判定した場合には、判定部1060は通知の指令を送信部1070に出力し、ステップS1506に分岐し、そうでない場合には、ステップS1507に分岐して、一連の処理を終了する。
【0132】
なお、判定部1060は、第一測定部1030で抽出できた距離の信頼度に基づいて判定を行っても良い。例えば、判定部1060は、第一測定部1030で抽出できた特徴点の数に基づいて判定を行っても良い。例えば、特徴点を3点よりも多く用意しておいた場合、抽出できた特徴点の数が多いほど、信頼度の高い距離を算出できる。第一測定部1030で抽出できた特徴点の数が閾値以下であれば、判定部1060を介して通知部1070で通知を行い、そうでない場合は、判定部1060を介して通知部1070で通知を行わない構成としてもよい。
【0133】
また、例えば、第一測定部1030で抽出できた特徴点の大きさに基づいて判定部1060で判定を行ってもよい。より具体的には例えば、特徴点を3点よりも多く用意しておいて、第一測定部1030で抽出できた特徴点のうち、1番目から3番目に大きい特徴点までを用いて位置推定を行う。その際、3番目に大きい特徴点の大きさが大きいほど、信頼度の高い距離を算出できる。そこで3番目に大きい特徴点の大きさが閾値以下であれば通知を行い、そうでない場合は通知を行わない構成としてもよい。
【0134】
また、今、軌跡生成部1080が保持するレコードのうち、今、実行しているレコードの番号が最新のレコードの番号から、どれだけ遅れているかに基づいて、所定の閾値よりも2つの番号の差が大きい場合には通知部1070で通知するとして、判定部1060で判定を行ってもよい。また、撮影対象の法線方向が、カメラの法線方向からどれだけずれているかに基づいて、所定の閾値よりも2つの方向の角度差が大きい場合には通知部1070で通知するとして、判定部1060で判定しても良い。
【0135】
ステップS1506では、判定部1060から出力された通知の指令に基づき、送信部1093は通知を送信する。受信部1094は送信部1093からの通知の指令を受信する。受信部1094が送信部1093からの通知の指令を受信すると、その指令が通知部1070に入力される。すると、通知部1070は、予め定められた通知処理を行う。ここでは、通知部1070は振動する機械であるので、この機械が振動する動作を行う。その後、ステップS1507に進む。
【0136】
ステップS1507では、判定処理を終了する。
【0137】
教示制御部1050Aは、位置情報取得部1091と軌跡生成部1080Aと保持部1140との情報に基づき、軌跡生成部1080Aが保持するレコードのうち、未実行のレコードを実行するように、ロボットアーム100Aの関節のそれぞれのモータ1098を駆動制御する。位置情報取得部1091から取得した現在の位置から、そのレコードの位置までの移動距離が所定の閾値(上限)より長ければ、閾値(上限)の範囲で、レコードの位置に近づくように、教示制御部1050Aで制御を行なう。もし、現在の位置までの移動距離が所定の閾値(上限)より短ければ、さらにその次のレコードの位置を目標位置にするように、教示制御部1050Aで制御を行なう。教示制御部1050Aが行う教示制御処理の流れを図18に示す。
【0138】
ステップS1601で、教示制御部1050Aは教示制御処理を開始する。
【0139】
次いで、ステップS1602で、位置情報取得部1091は、ロボットアーム100の手先1011の現在位置を取得する。具体的なやり方は、前記比較例の構成比と同様である。
【0140】
次いで、ステップS1603で、教示制御部1050Aは、保持部1140より、最後に実行したレコードの番号を取得する。
【0141】
次いで、ステップS1604で、教示制御部1050Aは、取得したレコード番号に1を加える。この番号のレコードが、次に移動するレコードの候補となる。
【0142】
次いで、ステップS1605で、教示制御部1050Aは、軌跡生成部1080より、未実行のレコード番号のレコードを取得する。
【0143】
次いで、ステップS1606で、教示制御部1050Aは、軌跡生成部1080より取得したレコードが、軌跡生成部1080Aが保持する最後のレコードであるかを判定する。最後のレコードであった場合には、ステップS1607へ分岐する。そうでない場合はステップS1608へ分岐する。
【0144】
ステップS1607で、教示制御部1050Aは、ステップS1605で取得したレコードの位置に、ロボットアーム100の手先1011を移動するように、ロボットアーム100Aの関節のそれぞれのモータ1098を制御する。ロボットアーム100Aの移動後、ステップS1613に分岐する。
【0145】
次いで、ステップS1613で、教示制御部1050Aは、保持部1140に、現在のレコード番号の値(すなわち、再度のレコードの値)を格納する。格納後、ステップS1612に分岐して、一連の処理を終了する。
【0146】
一方、ステップS1608で、教示制御部1050Aは、ステップS1602で位置情報取得部1091から取得した現在のロボットアーム100の手先1011の位置から、軌跡生成部1080より取得したレコードの位置までの距離を算出する。
【0147】
次いで、ステップS1609で、教示制御部1050Aは、軌跡生成部1080より取得した算出した距離が、予め定めた閾値(上限)以上であるかを判定する。閾値(上限)以上であると教示制御部1050Aで判定した場合には、ステップS1610に分岐し、閾値(上限)未満であると教示制御部1050Aで判定した場合には、ステップS1604に分岐する。
【0148】
ステップS1610で、教示制御部1050Aは、移動位置を決定する。ここでは、ステップS1602で位置情報取得部1091から取得した現在位置から、ステップS1605で取得したレコード位置に向かって、閾値(上限)の距離だけ進んだ位置に、ロボットアーム100の手先1011を移動するようにモータ1098の駆動制御を行う。すなわち、モータ1098の正逆回転を制御する。
【0149】
次いで、ステップS1611で、教示制御部1050Aは、保持部1140に、現在のレコード番号の値から1を引いた値を格納する。
【0150】
次いで、ステップS1612で、教示制御部1050Aは教示制御処理を終了する。
【0151】
ここで、ステップS1609における「予め定めた閾値」は、ロボットアームを一回の制御で移動させる移動距離の上限値に相当する。すなわち、保持部1140より取得したレコードの位置が、移動距離の上限値に達するまでは、次々にレコードを取得していき、上限値に達した場合に、(レコードの取得をやめて)ステップS1610に分岐して最後に取得したレコードに基づく移動の制御を行う。ここで、ステップS1610に分岐した場合には、(ステップS1605で)取得されていないレコードが保持部1140に存在していても、レコード取得を打ち切っている。すなわち、移動距離の上限値に到達したレコードよりも後のレコードの位置には移動されず、次に(図18のフローが実行される時)の移動に持ち越される。
【0152】
また、ステップS1610では、最後に取得したレコードの位置に移動するのではなく、最後に取得したレコードの位置の方向に、「予め定めた閾値」の距離だけ進む構成としている。よって、最後に取得したレコードの位置が、移動距離の上限値よりも離れた位置であっても、実際に手先1011が移動する位置は、移動距離の上限値の位置になる。
【0153】
なお、ここでは、第一センサ1090が手先1011に固定された構成を説明したが、第一センサ1090は操作部1090に固定された構成であっても構わない。その場合は、特徴点を手先1011に設ける。
【0154】
また、ここでは、第一センサ1090がカメラのときの相対位置を取得する説明しているが、第一センサ1090がジャイロセンサーとレーザーレンジファインダとで構成され、それらによって相対位置を取得する構成であっても構わない。
【0155】
また、なお、判定部1060が行う処理のステップS1505では、ステップS1503で取得した距離を閾値と比較して、距離が閾値より大きい場合にのみ、通知を行う構成を説明したが、閾値を設ける替わりに、通知は常に行う構成として、ステップS1503で取得した距離が大きいほど、通知部1070が行う通知の量を段階的に又は徐々に大きくする構成であっても構わない。ここで通知の量とは、例えば通知部1070がバイブレータであるならば、振動の大きさであり、通知部1070が音を鳴らすのであれば、鳴らす音の大きさである。
【0156】
<第1実施形態の第1変形例>
第1実施形態では、第一センサ1090が精度良く測定を行えると判定した場合は、特に何もせず、精度良く測定を行えないと判定した場合には、通知部1070により、操作部1020を振動させて操作者が操作をし難くする構成を示している。第1実施形態の第1変形例では、第一センサ1090が精度良く測定を行えると判定した場合は、特に何もせず、精度良く測定を行えないと判定した場合には、操作部1020を物理的に拘束させて操作者が操作をし難くする構成を示す。拘束には、コード巻き取り機を用いる。
【0157】
図19Aは第1実施形態の第1変形例の構成を示す図である。手先1011にコード巻き取り部2110を固定し、基端がコード巻き取り部2110に固定されたコード2111の先端を、操作部1020に固定する。ここで、コード巻取り部2110は、掃除機のコード巻き取り機のようなコードを巻き取り出来る機構である。掃除機のコード巻き取り機は、ボタンを押している間は、コードが伸縮自在である。よって、コードの先端を人が握って動かせば、その動きに合わせてコードが伸縮する。ボタンを離した状態では、コードが伸縮できなくなり(あるいは、伸縮し難くなり)拘束される。よって、人がコードを掃除機から遠ざけようとしても拘束されて、遠ざけることはできない。ただし、近づく方向には拘束されない。
【0158】
コード巻取り部2110は、掃除機の場合と同様に、コード2111が伸縮自在な状態と、伸縮不能な状態とを切換えるスイッチを有する。例えば、スイッチは掃除機の場合と同様にボタンである。図19Aではスイッチは図示しない。
【0159】
切換え部2120は、このスイッチを切換える部である。例えば、スイッチが掃除機の場合と同様にボタンであるならば、モータを用いて、ボタンを押す、押さないを切換える。
【0160】
通知部1070は、コード2111をコード巻取り部2110に対して伸縮可能な状態にするか、伸縮不能な状態にするかの指示を切換え部2120に出力又は送信する。すなわち、第一センサ1090が精度良く測定を行えると判定部1060で判定した場合は、判定部1060からの判定結果の情報を基に、コード2111がコード巻取り部2110に対して伸縮可能な状態にする指示を切換え部2120に出力又は送信する。精度良く測定を行えないと判定部1060で判定した場合には、コード2111がコード巻取り部2110に対して伸縮不能な状態にする指示を切換え部2120に出力又は送信する。
【0161】
なお、この第1変形例では、通知部1070はロボット1010Aの一部であるので、送信部1093及び受信部1094は存在しない構成となり、判定部1060は通知部1070に直接通知を行う。
【0162】
このように、通知部1070は、操作部1020に備えるのみならず、ロボット1010Aに備えてもよいし、操作部1020とロボット1010Aとの両方に備えてもよい。
【0163】
<第2実施形態>
第1実施形態では、第一センサ1090でロボット1010Aの手先1011と、操作部1020の相対位置を測定する構成を説明している。第1実施形態では、第一センサ1090で常に相対位置を測定できることを前提としているが、実際には、手先1011と操作部1020との相対位置が離れすぎたり、操作部1020が第一センサ1090で撮影し難い向きを向いた場合に、相対位置が測定できない場合がある。そのような場合を補うために、本発明の第2実施形態では、第一センサ1090とは別に、第二センサ1060を備えて用いる。第一センサ1090は、相対位置を測定するセンサであるため、近い距離の対象物までの距離を測定する。第二センサ1060は、天井からの絶対位置を測定するセンサであるため、遠い距離の対象物までの距離を測定する。一般に、第二センサ1160の方が、測定精度が悪い。よって、正確な操作部1020の位置を取得するためには、第一センサ1090で距離を測定したいが、第一センサ1090で測定ができないときには第二センサ1160で位置を測定する。そして、第一センサ1090で測定ができないときには、通知部1070で通知を行う。
【0164】
第2実施形態の構成を図20及び図21を用いて説明する。図15と同じ符号の構成要素は第1実施形態と同様の構成要素であるため、説明を省略する。以下、図15に無い構成要素である、第一測定部1030Bと、絶対位置取得部1096Bと、第二測定部1150と、第二センサ1160と、判定部1060Bとを説明する。
【0165】
第一測定部1030Bは、第一センサ1090で撮影した画像に基づいて操作部1020に対する手先1011の相対位置を取得して、取得した情報を絶対位置取得部1096Bに出力する。第1実施形態と異なる点は、常に相対位置を取得できるとは限らない点である。第2実施形態における第一測定部1030Bは、相対位置を取得できたか否かの判定結果の真偽値を絶対位置取得部1096Bに出力する。例えば、特徴点の一部が取得できなかった場合に、偽の判定結果を絶対位置取得部1096Bに出力する。特徴点のすべてを抽出し、距離が算出できたときは、真の判定結果を絶対位置取得部1096Bに出力する。
【0166】
第二センサ1160は、ロボットアーム100Aによる作業を行う空間の天井側に設置して、地面(ロボットアーム設置床面)に対する操作部1020の絶対位置を取得する際に使用するセンサである。この第2実施形態の構成では、第二センサ1160が、天井に固定されたカメラである場合について説明する。具体的には、例えば、2048画素×2048画素を有するCCDカメラである。このような構成では、カメラで取得した画像に対して、第二センサ1160に内蔵した画像処理部で画像処理を施すことで操作部1020の相対位置の取得を行う。この処理は、第一センサ1090と同様である。第1実施形態では、操作部1020の一端面に特徴点2011〜2013を配置する場合を説明しているが、第2実施形態では、操作部1020の全ての面に特徴点を配置しておき、絶対位置の取得に用いる。
【0167】
第二測定部1150は、制御部101Aの一部を構成し、第二センサ1160で撮影した画像に基づいて操作部1020の絶対位置を取得し、操作部1020に対する手先1011の相対位置を取得して、取得した情報を絶対位置取得部1096Bに出力する。
【0168】
絶対位置取得部1096Bは、第一測定部1030Bと第二測定部1150との情報に基づき、操作部1020の絶対位置を取得する。第一測定部1030Bで操作部1020の相対位置が取得できた場合は、第1実施形態と同様の方法で操作部1020の絶対位置を取得する。第一測定部1030Bで操作部1020の相対位置が取得できなかった場合は、第二測定部1150を用いて操作部1020の絶対位置を取得する。
【0169】
図19Bは、絶対位置取得部1096Bが行う絶対位置取得処理の流れを示す図である。
【0170】
ステップS2101で、絶対位置取得部1096Bは絶対位置取得処理を開始する。
【0171】
次いで、ステップS2102で、位置情報取得部1091は、ロボットアーム100の手先1011の位置を取得する。第1実施形態におけるステップS602と同様の処理である。
【0172】
次いで、ステップS2103で、第一測定部1030Bは、操作部1020の相対位置を取得する。第1実施形態におけるステップS603と同様の処理である。第一測定部1030Bで操作部1020の相対位置を取得できた場合は、ステップS2104に分岐し、第一測定部1030Bで操作部1020の相対位置を取得できなかった場合は、ステップS2108に分岐する。
【0173】
ステップS2104では、絶対位置取得部1096Bは、操作部1020の絶対位置を取得する。第1実施形態におけるステップS604と同様の処理である。取得後、ステップS2107に分岐して、一連の処理を終了する。
【0174】
ステップS2108で、第二測定部1150は、操作部1020の絶対位置を取得して、絶対位置取得部1096Bに出力する。これにより、絶対位置取得部1096Bは、操作部1020の絶対位置を取得する。
【0175】
次いで、ステップS2107で、絶対位置取得部1096Bは絶対位置取得処理を終了する。
【0176】
前記の絶対位置取得処理により、ステップS2104又はステップS2108のいずれかで、絶対位置取得部1096Bは、操作部1020の絶対位置を取得する。
【0177】
判定部1060Bは、通知部1070を用いた通知を行うか(ここでは、通知部1070により操作部1020を振動させるか)否かを判定する。通知部1070による通知を行う場合は2つある。一つ目は第1実施形態の場合と同じで、ロボットアーム100Aに対する操作部1020の相対位置と、第一の相対位置とのずれが所定の距離を上回った場合である。もう一つは、第一測定部1030Bが、操作部1020の相対位置を取得できなかった場合である。
【0178】
以下、判定部1060Bが行う判定処理の流れを図22に示す。
【0179】
ステップS3201で、判定部1060Bは判定処理を開始する。
【0180】
次いで、ステップS3202で、第一測定部1030Bは、操作部1020の相対位置を取得する。第一測定部1030Bが操作部1020の相対位置を取得できた場合はステップS3203へ分岐する。第一測定部1030Bが操作部1020の相対位置を取得できなかった場合はステップS3207に分岐する。
【0181】
次いで、ステップS3203からステップS3208までの各ステップは、第1実施形態におけるステップS1502からステップS1507と同じ処理である。
【0182】
なお、第1実施形態及び第2実施形態では、第一センサ109がカメラの場合を示しているが、これに限定されるものではない。例えば第一センサ109を距離センサとし、操作部3420の複数の表面点の位置を取得し、事前モデルとのフィッティングを行って位置及び姿勢を取得する構成としても構わない。
【0183】
このような構成を採ることによる第2実施形態の効果を4つ述べる。
【0184】
第一に、操作者は、操作感良く、操作部1020の操作を行うことができる。
【0185】
第二に、ロボットアーム100Aは、上限速度の範囲で移動するため、危険性が少ない。
【0186】
第三に、操作部1020の相対位置を低い精度で取得した(相対位置を精度良く測定できない)場合、通知部1070が、操作者に通知するので、又は、精度を要しない作業しか完成できない状況を構築するので、精度良く作業を行いたい部分では、カメラに対して操作部1020が追いついてから作業を行うことができる。
【0187】
例えば、柔軟物の挿入対象物の穴への挿入作業であれば、柔軟物を穴から1cmほど離れた位置まで近づける作業は、精度を求めない作業部分である。その作業を行っている間は、操作者は、通知部1070からの通知を無視して、素早く作業を行う。一方、柔軟物と挿入対象物の穴との最後の位置合わせ、又は、穴に柔軟物を押し込む部分には、精度良く位置を取得する必要がある。精度良く位置が取得できなければ、教示した軌跡を使って再生を行うときに、柔軟物が穴にうまく入らない。この第2実施形態の構成では、穴に柔軟物を押し込む作業部分では、ロボットアーム100Aの手先1011が追従するのを待ってから作業を行うことになるので、精度が求められる作業は精度良く測定することができる。また、第1実施形態の第1変形例の場合でも、操作部1020の相対位置を低い精度で取得した(相対位置を精度良く測定できない)場合には、操作部1020の動きが拘束されるので、操作者は思い通りの作業を行うことが出来ないので、同様の効果がある。
【0188】
第四に、ロボットアーム100Aが周囲の物体と干渉しないかを確認することができる。例えば、操作部1020だけを動かして、その位置を天井に設置した第二センサ1060のカメラから取得して、ロボットアーム100Aを動かさなかった場合、軌跡の再生時にロボットアーム100Aがどのような姿勢を取るかが分からないまま教示を行うこととなる。よっていざ再生を行ってみると、ロボットアーム100Aの関節が地面にぶつかるような姿勢を取ることがある。この第二実施形態の構成では、教示時にロボットアーム100Aは再生時とほぼ同じ姿勢を取りつつ移動する。よって、教示時に、ロボットアーム100Aが周囲の物体と干渉するような姿勢をとっていないかを確認して軌跡を作っておけば、再生時にも、ロボットアーム100Aが周囲の物体と「ほぼ」干渉しない軌跡でロボットアーム100Aが移動する。ここで、「ほぼ」としたのは、若干、教示時のロボットアーム100Aの軌跡と再生時のロボットアーム100Aの軌跡がずれる場合があるためである。教示時に、ロボットアーム100Aの手先1011は、操作部1020に追従して移動するが、完全に追従ができるわけではない。操作部1020が急激に移動した場合には、追従が追いつけなかったり、ロボットアーム100Aの制御上の制約によって振動してしまったりする場合があるためである。これが軌跡の誤差を生む。
【0189】
なお、前記様々な実施形態のうちの任意の実施形態を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【0190】
本発明にかかるロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路は、ロボット本体であるロボットアームの手先と人が把持する操作部とが機構的に分離しており、人が操作部を操作することによってロボットアームを操作することができて、産業用ロボット又は生産設備などにおける可動機構のロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路として有用である。また、本発明にかかるロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路は、産業用ロボットに限らず、家庭用又は宇宙作業用のロボットのロボットアーム、ロボットアームの教示装置、ロボット装置、教示方法、ロボットアームの制御装置、ロボットアームの制御プログラム、並びに、集積電子回路として適用される可能性もある。
【符号の説明】
【0191】
90 部品
91 ハンド
100,100A ロボットアーム
100PA,100PB,100PC,100PD ロボットアームの位置
101,101A 制御部
900 教示装置
1000,1000A ロボット装置
1010 ロボット
1011 手先
1020 操作部
1020PA,1020PB,1020PC,1020PD 操作部の位置
1030,1030B 第一測定部
1040,1040A 第一相対位置算出部(移動量決定部の一例)
1050,1050A 教示制御部
1060,1060A 判定部
1070 通知部
1080,1080A 軌跡生成部
1090 第一センサ(相対位置測定部の一例)
1091 位置情報取得部
1093 送信部
1094 受信部
1096,1096B 絶対位置取得部
1098 モータ
1099 エンコーダ
1120 固定部
1120a 第1穴
1120b 第2穴
1130 再生制御部
1140 保持部
1150 第二測定部
1310 距離算出部
2011〜2013 特徴点
2110 コード巻取り部
2111 コード
2120 切換え部
7010 手先の中心位置を示す点
7011 手先の方向を示すベクトル
8010 操作部の方向を示すベクトル
8011 操作部の中心位置の点

【特許請求の範囲】
【請求項1】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部と、
前記操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定する判定部と、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知する通知部と、
を備える、
ロボットアームの教示装置。
【請求項2】
前記相対位置測定部が測定した前記相対位置が前記所定範囲内に入るように、前記ロボットアームを移動させる移動量を決定する移動量決定部と、
前記移動量決定部が決定した前記移動量に基づいて前記ロボットアームを移動させる制御を行う教示制御部とをさらに備える、
請求項1に記載のロボットアームの教示装置。
【請求項3】
前記操作部の位置を取得する第二測定部をさらに備え、
前記相対位置測定部が前記相対位置を取得できなかった場合、前記移動量決定部は、前記第二測定部が測定した前記操作部の位置に基づいて前記移動量を決定し、
前記所定範囲は、前記相対位置測定部によって前記相対位置を取得できる範囲である、
請求項1又は2に記載のロボットアームの教示装置。
【請求項4】
請求項1〜3のいずれか1つに記載のロボットアームの教示装置と、
再生時は、固定部で前記操作部を前記ロボットアームに固定して、前記操作部を動作制御する再生制御部とを備える、ロボット装置。
【請求項5】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を相対位置測定部で測定し、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定部で判定し、
前記相対位置が前記所定範囲内に無いと前記判定部で判定すると前記操作者に通知部で通知する、
ロボットアームの教示方法。
【請求項6】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアームの制御装置。
【請求項7】
コンピュータに、
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部として機能させるためのロボットアームの制御プログラム。
【請求項8】
操作者が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの手先と分離されて前記手先に対して相対移動可能でかつ前記教示操作時に前記操作者が把持可能でありかつ再生時には前記ロボットの前記手先に固定される操作部又は前記ロボットアームの前記手先に取り付けられて、前記操作部と前記ロボットアームの前記手先との相対位置を測定する相対位置測定部と、
前記相対位置測定部が測定した前記相対位置が所定範囲内にあるか否かを判定し、前記相対位置が前記所定範囲内に無いと判定すると、前記操作者に通知する通知部に通知を行なわせる指令を出力する判定部と、
を備える、
ロボットアーム制御用集積電子回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19A】
image rotate

【図19B】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2013−71231(P2013−71231A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214442(P2011−214442)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】