(57)【要約】【課題】水平でない平面を基準にしてロボットを制御することを容易にする。【解決手段】ロボットは、水平でない作業平面内の３点以上を示すマーカーが撮像された画像に基づいて前記作業平面と平行で互いに直交する２軸を有するローカル座標系を導出するローカル座標系導出部と、前記ローカル座標系を介して制御パラメーターを取得する制御パラメーター取得部と、を備える。【選択図】図１
2016221645.tif 000002
【特許請求の範囲】
【請求項１】
水平でない作業平面内の３点以上を示すマーカーが撮像された画像に基づいて前記作業
平面と平行で互いに直交する２軸を有するローカル座標系を導出するローカル座標系導出
部と、
前記ローカル座標系を介して制御パラメーターを取得する制御パラメーター取得部と、
を備えるロボット。
【請求項２】
前記制御パラメーターは制御対象点が移動する目標点の座標である、
請求項１に記載のロボット。
【請求項３】
前記制御対象点を前記作業平面に対して平行に移動させる制御モードを有する、
請求項２に記載のロボット。
【請求項４】
前記制御パラメーター取得部は、前記作業平面を撮像した画像の座標をオペレーターが
指定すると、前記作業平面を撮像した画像の座標を前記目標点としての前記ローカル座標
系の座標に変換する、
請求項１〜３のいずれか一項に記載のロボット。
【請求項５】
前記制御パラメーター取得部は、前記画像の座標系と前記ローカル座標系を介して前記
制御パラメーターを取得する、
請求項１〜４のいずれか一項に記載のロボット。
【請求項６】
前記制御パラメーターによって制御されるアームを備える、
請求項１〜５のいずれか一項に記載のロボット。
【請求項７】
前記制御パラメーターは、前記アームに装着されるツールの姿勢である、
請求項６に記載のロボット。
【請求項８】
前記アームに設けられ、前記マーカーを撮像する撮像部を備える、
請求項１〜７のいずれか一項に記載のロボット。
【請求項９】
前記アームを動かすことにより前記マーカーと前記撮像部との位置関係を変化させ、
前記撮像部と前記マーカーの位置関係が変化した後に前記撮像部によって前記マーカー
が撮像された画像に基づいて、前記撮像部によって撮像される画像の座標系とロボットの
基準座標系との校正が行われる、
請求項８に記載のロボット。
【請求項１０】
前記アームを動かすことにより前記位置関係を前記作業平面と前記撮像部の光軸とが垂
直な状態に変化させ、
前記校正は、前記位置関係が前記状態にあるときに前記撮像部によって前記マーカーが
撮像された画像に基づいて行われる、
請求項８または９に記載のロボット。
【請求項１１】
水平でない作業平面上においてワークを処理するロボットを制御するロボット制御装置
であって、
前記作業平面内の３点以上を示すマーカーが撮像された画像に基づいて前記作業平面と
平行で互いに直交する２軸を有するローカル座標系を導出するローカル座標系導出部と、
前記ローカル座標系を介して前記ロボットの制御パラメーターを取得する制御パラメー
ター取得部と、
を備えるロボット制御装置。
【請求項１２】
水平でない作業平面上においてワークを処理するロボットと、前記ロボットを制御する
ロボット制御装置とを備えるロボットシステムであって、
前記作業平面内の３点以上を示すマーカーが撮像された画像に基づいて前記作業平面と
平行で互いに垂直な２軸を有するローカル座標系を導出するローカル座標系導出部と、
前記ローカル座標系を介して前記ロボットの制御パラメーターを取得する制御パラメー
ター取得部と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボット制御装置およびロボットシステムに関する。
【背景技術】
【０００２】
従来、ロボットを用いてワークを処理するにあたっては、ワークの位置やワークに対す
るツールの姿勢などを予めロボットに教示しておく必要がある。ここでツールとは、ワー
クを処理するために用いられるハンドなどであって、ワークの形態と処理内容に応じてロ
ボットに装着されるアタッチメントである。ワークの位置やワークに対するツールの姿勢
などをロボットに教示する場合、実際のワークの位置を目標点としてツールの先端等の制
御対象点をジョグ送り操作によって目標点まで移動させ、移動後の位置をロボットに記憶
させる方法が一般的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２２８７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ロボットが処理するワークの対象面は必ずしも水平面（鉛直方向と垂直な面
）ではない。例えば三角柱形態のワークの側面の１つにドリルで複数の穴を形成する処理
であれば、他の側面を底面として水平な作業台上にワークを載置すると、穴を形成すべき
対象面は水平ではない傾斜面になる。この場合、傾斜した対象面上にある穿孔位置と、ド
リルの回転軸が対象面と垂直になる姿勢を教示することなる。しかし、このような教示作
業は容易ではなく、また、高精度に実施することは困難である。
【０００５】
本発明は、このような問題を解決するために創作されたものであって、水平でない平面
を基準にしてロボットを制御することを容易にすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためのロボットは、水平でない作業平面内の３点以上を示すマーカ
ーが撮像された画像に基づいて前記作業平面と平行で互いに直交する２軸を有するローカ
ル座標系を導出するローカル座標系導出部と、前記ローカル座標系を介して制御パラメー
ターを取得する制御パラメーター取得部と、を備える。
【０００７】
ここで作業平面とは、ロボットをワークに対して制御する際の基準となる平面であって
、ロボットが処理するワークを載置する面やワークの対象面やこれらに平行な平面など、
ワークに様々な処理を施す際に基準とする平面である。またローカル座標系を導出すると
は、予め定義されている基準座標系で表された位置と、当該ローカル座標系で表された位
置との対応関係が明らかな状態にすることであって、例えば座標変換行列を導出すること
を含む。また制御パラメーターとは、ロボットを制御する際に用いる位置、方向、姿勢、
距離、速度、加速度、角速度、角加速度等の制御量を示す数値である。したがって、「ロ
ーカル座標系を介して制御パラメーターを取得する」とは、ローカル座標系によってその
数値（制御パラメーター）の幾何学的な意味合いが解釈される状態で制御パラメーターが
取得されることを意味する。なお、制御パラメーター自体がローカル座標系の座標や方向
を示していなくとも良く、例えばローカル座標系に対応する別の座標系の座標や方向を制
御パラメーターとして外部のシステムやオペレーターの入力操作によって取得した後に、
変換行列を用いてローカル座標系の座標や方向を取得しても良いし、ローカル座標系の座
標や方向を外部のシステムやオペレーターの入力操作によって取得した後に、変換行列を
用いて別の座標系の座標や方向を取得しても良い。
【０００８】
本発明によると、画像に基づいてローカル座標系が導出され、導出されたローカル座標
系を介して制御パラメーターをロボットに取得させることができるため、水平でない平面
を基準にしてロボットを制御することが容易になる。
【０００９】
なお請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資
源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせによ
り実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェ
ア資源で実現されるものに限定されない。
【図面の簡単な説明】
【００１０】
【図１】図１Ａは本発明の実施形態にかかる模式的な斜視図。図１Ｂは本発明の実施形態にかかるブロック図。
【図２】図２Ａは本発明の実施形態にかかる平面図、図２Ｂは本発明の実施形態にかかる側面図である。
【図３】本発明の実施形態にかかる平面図。
【図４】本発明の実施形態にかかるフローチャート。
【図５】本発明の実施形態にかかるフローチャート。
【図６】本発明の実施形態にかかるフローチャート。
【図７】本発明の実施形態にかかる模式図。
【図８】本発明の実施形態にかかる画像を示す図。
【図９】本発明の実施形態にかかる模式図。
【図１０】本発明の実施形態にかかる画像を示す図。
【図１１】本発明の実施形態にかかるフローチャート。
【図１２】本発明の実施形態にかかる画像を示す図。
【図１３】本発明の実施形態にかかる模式図。
【図１４】本発明の実施形態にかかるフローチャート。
【図１５】本発明の実施形態にかかるフローチャート。
【図１６】本発明の実施形態にかかる模式的な斜視図。
【図１７】本発明の実施形態にかかる模式的な斜視図。
【図１８】本発明の実施形態にかかる画像を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応
する構成要素には同一の符号が付され、重複する説明は省略される。
１．ロボットシステムの構成
本発明の一実施例としてのロボットシステムは、図１に示すように、ロボット１と、カ
メラ２と、ロボット制御装置としてのＰＣ（Personal Computer）３とを備えている。
【００１２】
図１Ａに簡略化して示すように、ロボット１は、６つの回転軸部材１２１、１２２、１
２３、１２４、１２５、１２６によって屈曲するマニピュレーターを備える単腕６軸ロボ
ットである。基台１１０は、第一アーム１１１の回転軸部材１２１を支持している。第一
アーム１１１は回転軸部材１２１の中心軸を中心にして回転軸部材１２１とともに基台１
１０に対して回転する。第一アーム１１１は、第二アーム１１２の回転軸部材１２２を支
持している。第二アーム１１２は、回転軸部材１２２の中心軸を中心にして回転軸部材１
２２とともに第一アーム１１１に対して回転する。第二アーム１１２は、第三アーム１１
３の回転軸部材１２３を支持している。第三アーム１１３は、回転軸部材１２３の中心軸
を中心にして回転軸部材１２３とともに第二アーム１１２に対して回転する。第三アーム
１１３は、第四アーム１１４の回転軸部材１２４を支持している。第四アーム１１４は、
回転軸部材１２４の中心軸を中心にして回転軸部材１２４とともに第三アーム１１３に対
して回転する。第四アーム１１４は、第五アーム１１５の回転軸部材１２５を支持してい
る。第五アーム１１５は、回転軸部材１２５の中心軸を中心にして回転軸部材１２５とと
もに第四アーム１１４に対して回転する。第五アーム１１５は、ツールが装着される回転
軸部材１２６を支持している。
【００１３】
先端の回転軸部材１２６には、図２に示すように、ワークを操作するための各種のツー
ルが装着されるツールチャック１２６１が設けられている。図２Ａに示すように、ツール
チャック１２６１の取付面は、放射状に分割されており、その中央部にツールの棒状の軸
部ＴＪが装着される。ツールチャック１２６１は、回転軸部材１２６の回転軸上に各種の
ツールの軸部ＴＪを挟み込んで保持する。したがってツールがツールチャック１２６１に
正しく装着された状態において、ツールの軸部ＴＪの中心軸は、回転軸部材１２６の回転
軸と一致する。ここでロボット１を用いてワークを把持する際にロボット１とワークとの
接触点になる部分など、一般的には対象物に最も近い部分のロボット１側の基準点をツー
ルセンターポイント（ＴＣＰ）という。本実施例においてＴＣＰは制御対象点となる。
【００１４】
図１Ｂに示すように、ロボット１は、回転軸部材１２１を駆動するモーター１３１と、
回転軸部材１２２を駆動するモーター１３２と、回転軸部材１２３を駆動するモーター１
３３と、回転軸部材１２４を駆動するモーター１３４と、回転軸部材１２５を駆動するモ
ーター１３５と、回転軸部材１２６を駆動するモーター１３６と、モーター１３１〜１３
６を制御する制御部１４とを備えている。モーター１３１〜１３６は、目標値と現在値と
の差分がゼロになるようにフィードバック制御されるサーボモーターである。制御部１４
は、ＴＣＰの位置と姿勢を示す目標値やＪＯＧ送り指示をＰＣ３から取得し、目標値とＪ
ＯＧ送り指示に基づいてモーター１３１〜１３６を制御する。
【００１５】
ロボット１を制御する際には、全ての座標系の基準となる基準座標系Ｒｂの他に、各回
転軸部材に対して固定され各回転軸部材とともに回転する座標系Ｊ１〜Ｊ６と、特定のワ
ークをロボットビジョンを用いて処理する際に用いられるローカル座標系Ｌｃが用いられ
る。これらの座標系の長さの単位はミリメートル、角度の単位は度である。ロボット１の
基準座標系Ｒｂは、それぞれが水平なｘ０軸とｙ０軸と、鉛直下向きを正方向とするｚ０
軸とによって定まる３次元の直交座標系であって、ロボット１が設置されることによって
ロボット１が動作する空間に固定される。回転軸部材１２６とともに回転する座標系Ｊ６
は、ＴＣＰを原点とし、回転軸部材１２６の回転軸と平行なｚ６軸と、ｚ６軸に対してそ
れぞれが垂直なｘ６軸とｙ６軸とによって定まる３次元の直交座標系である。なお、各座
標系のｚ軸周りの回転をｕ、ｙ軸周りの回転をｖ、ｘ軸周りの回転をｗで表す。
【００１６】
ツールチャック１２６１には、カメラ２と任意のツールとを取り付けるための延長チャ
ックＴが固定される。撮像部としてのカメラ２は、その光軸Ｌが回転軸部材１２６の回転
軸と平行になるように延長チャックＴに固定されている。カメラ２は、レンズ２０１、エ
リアイメージセンサー２０２、図示しないＡＤ変換器等を備え、作業平面内におけるワー
クの大きさ、形状、位置、姿勢を認識するための撮像装置である。なお、本実施例で校正
されるロボットビジョンは、予め決められた作業平面を対象とする二次元のロボットビジ
ョンである。このため、レンズ２０１には、被写界深度が浅く（焦点距離が長く）Ｆ値が
小さな単焦点レンズを用いることが好ましい。
【００１７】
カメラ２の位置と姿勢を定義するためにカメラ座標系Ｃａｍが定義される。カメラ座標
系Ｃａｍは、図１Ａに示すように、撮像位置を原点とし、光軸Ｌと対応するｚｃａｍ軸と
、イメージセンサー２０２の水平方向と対応するｘｃａｍ軸と、イメージセンサー２０２
の垂直方向に対応するｙｃａｍ軸とを有し、Ｊ６座標系に対して固定された３次元の直交
座標系である。撮像位置は、光軸Ｌとイメージセンサー２０２の交点とする。カメラ座標
系Ｃａｍは、回転軸部材１２６１に固定されたＪ６座標系における撮像位置（ｘ６、ｙ６
、ｚ６）とＪ６座標系におけるカメラ座標系Ｃａｍの姿勢（ｕ６，ｖ６、ｗ６）とを成分
とするカメラ設定によって定義される。カメラ座標系Ｃａｍの姿勢は、Ｊ６座標系の各軸
を中心としてカメラ座標系Ｃａｍが何度ずつ回転しているかを表している。
【００１８】
カメラ２から出力される画像の座標系を画像座標系Ｉｍという。画像座標系Ｉｍの長さ
の単位はピクセル、角度の単位は度である。画像座標系Ｉｍと基準座標系Ｒｂとを対応付
けることによって、作業平面内においてワークの位置、姿勢、形状を画像認識することが
可能になる。したがって、カメラ２が出力する画像に基づいてワークの位置等を認識して
、認識結果に基づいてロボット１を制御するためには、画像座標系Ｉｍと基準座標系Ｒｂ
とを関係づける処理、すなわち校正が必要になる。画像座標系Ｉｍと基準座標系Ｒｂとの
関係は、レンズ２０１の光学特性（焦点距離、歪みなど）とエリアイメージセンサー２０
２の画素数と大きさとに応じて定まる。校正では、基準座標系Ｒｂと画像座標系Ｉｍとの
非線形な対応関係を示す変換行列が求められる。
【００１９】
ところで、作業平面が水平でない場合、ｘ０ｙ０平面が水平な基準座標系Ｒｂを介して
ロボット１を制御したり操作するよりも、作業平面と平行な２軸を有する座標系を介して
ロボット１を制御したり操作する方が容易である。そこで本実施例では、水平面と任意の
角度をなす作業平面と平行な２軸を有するローカル座標系Ｌｃを次のように定義する。
【００２０】
ローカル座標系Ｌｃは、ロボットビジョンの視点（撮像位置）を原点とし、作業平面に
対して垂直でかつカメラ２の光軸Ｌと平行なｚＬｃ軸と、作業平面に対して平行でカメラ
２の光軸Ｌと垂直で画像座標系の水平軸と平行なｘＬｃ軸と、作業平面に対して平行でカ
メラ２の光軸Ｌと垂直で画像座標系の垂直軸と平行なｙＬｃ軸とを有し、基準座標系Ｒｂ
に対して固定された３次元の直交座標系である。すなわち、ローカル座標系Ｌｃは、基準
座標系Ｒｂで表される撮像位置と撮像姿勢とカメラ設定とによって、作業平面に対して都
度設定される。したがってカメラ設定が正確でなければ、ローカル座標系Ｌｃを定義通り
に設定することができず、ローカル座標系Ｌｃを介して意図通りにロボット１を制御する
ことができない。カメラ設定には、カメラ２の位置と姿勢の他、レンズ２０１の焦点距離
、主点、歪み等、レンズ２０１の光学特性に基づく情報が含まれる。焦点距離、主点、歪
み等はカメラ２にとって不変であるため、これらのレンズ２０１の光学特性に基づくカメ
ラ設定は、予め決められた値が用いられる。
【００２１】
ロボット制御装置としてのＰＣ３はロボット１とカメラ２に通信可能に接続されている
。ＰＣ３には、ローカル座標系Ｌｃを設定して基準座標系Ｒｂと画像座標系Ｉｍとを校正
するための校正プログラムや、ＴＣＰに対するカメラ２とツールのオフセットを設定する
ためのツールセットプログラムや、教示プログラムなどの各種のコンピュータープログラ
ムがインストールされている。ＰＣ３は、図示しないプロセッサ、ＤＲＡＭからなる図示
しない主記憶、図示しない入出力機構、不揮発性メモリからなる図示しない外部記憶、キ
ーボード等を備えるコンピューターである。またＰＣ３は、カメラ２で撮像した画像やＧ
ＵＩを表示するための画面を有する表示部３５を備えている。ＰＣ３は、外部記憶に記憶
されたプログラムをプロセッサで実行することにより、指示受付部３０、画像取得部３１
、目標値導出部３２、出力部３３、校正部３４として機能する。
【００２２】
指示受付部３０は、カメラ２によって撮像された画像やＧＵＩを表示部３５の画面に表
示する。また指示受付部３０は各種の処理の開始指示を受け付けたり、目標位置や目標姿
勢といった制御パラメーターを、ＧＵＩを介して取得する。すなわち指示受付部は、制御
パラメーター取得部として機能する。
【００２３】
画像取得部３１は、カメラ２に対して撮像を指示し、作業平面に含まれる基準点を示す
マーカーが指示に応じて撮像された画像をカメラ２から取得する。本実施例では、作業平
面を可視化するために図１Ａおよび図３に示すマーカーボード４を用いる。図３に示すよ
うに、マーカーボード４は、円形の輪郭を有する９つのマーカー４１〜４９が平坦な面の
所定の格子点に付された板である。各マーカー４１〜４９の中心が基準点に相当する。マ
ーカーボード４上の各マーカー４１〜４９の中心位置はマーカーボード４に固定された２
次元の座標系（マーカー座標系Ｃｂ）でＰＣ３が保持する。なお、マーカーはマーカーが
撮像された画像からマーカーを検出することにより基準点を特定可能な形態であればよい
。すなわち、特定の点の位置をマーカーの図形に対して幾何学的に定義できる形態であれ
ばよい。マーカーから離れた点が基準点として定義されてもよいし、１つのマーカーから
複数の基準点が定義されても良いし、互いに離れた複数のマーカーで１つの基準点が定義
されても良い。またマーカーによって平面を特定できればよいため、マーカーが指し示す
基準点の数は３以上であればよい。
【００２４】
目標値導出部３２は、カメラ２とマーカー４１〜４９の位置関係を予め決められた状態
に変化させるための目標値を、カメラ２が撮像した画像に基づいて導出する。具体的には
、目標値導出部３２は、カメラ２が撮像した画像に基づいて、予め決められた状態に対応
するＴＣＰの目標値を導出する。目標値導出部３２は、目標値を導出する過程において、
画像座標系Ｉｍからローカル座標系Ｌｃへの座標変換や、ローカル座標系Ｌｃから基準座
標系Ｒｂへの座標変換を実行する。また目標値導出部３２は、基準座標系Ｒｂとローカル
座標系Ｌｃの対応関係を定める変換行列ＲｂＲＬｃを、カメラ２によって撮像された画像
とＴＣＰの位置と姿勢とカメラ設定とに基づいて導出することによりローカル座標系Ｌｃ
を設定する。すなわち目標値導出部３２はローカル座標系導出部として機能する。
【００２５】
校正部３４は、画像座標系Ｉｍと基準座標系Ｒｂの対応関係を定める変換行列ＩｍＲＲ
ｂを導出する。校正部３４は、それぞれに対応する目標値を目標値導出部３２が導出する
以下の垂直状態と合焦状態にカメラ２とマーカー４１〜４９（基準点Ｐ１〜Ｐ９）の位置
関係が定められた後に、変換行列ＩｍＲＲｂを導出する。
・垂直状態：マーカーボード４とカメラ２の光軸が垂直な状態
・合焦状態：マーカーボード４にカメラ２が合焦する状態
【００２６】
合焦状態は、合焦の指標である画像のシャープネスによって定まる。なお、本実施例で
は、画像の予め決められた領域（部分画像）のシャープネスが最大になる状態を合焦状態
とするが、合焦の指標に閾値を設けることにより合焦状態に何らかの幅を持たせても良い
。
【００２７】
出力部３３は、目標値導出部３２によって導出された目標値をロボット１の制御部１４
に出力することにより、ロボット１を動作させる。
【００２８】
２．自動カメラ設定
次に自動カメラ設定について図４を参照しながら説明する。自動カメラ設定は、カメラ
設定としての撮像位置と撮像姿勢を自動的に設定する処理である。自動カメラ設定は、オ
ペレーターが開始指示をＰＣ３に入力することによって起動する。それ以後、オペレータ
ーに一切の操作を要求することなく完了してもよい。開始指示は、自動カメラ設定を開始
するためのトリガーである。従って、ロボット１を操作するための目標値を含んでいなく
てもよい。開始指示を入力する前にオペレーターに求められるのは、マーカーボード４を
任意の位置と姿勢に設置することと、カメラ２によってマーカーボード４をだいたい正面
から撮像できる状態にＴＣＰを移動させるジョグ送り操作だけであってもよい。
【００２９】
開始指示がＰＣ３に入力されると（Ｓ１）、ＰＣ３は、画像に基づいてカメラ２の光軸
Ｌをマーカーボード４に対して垂直にする光軸傾き補正を実行する（Ｓ２）。傾き補正で
は、カメラ２によるマーカーボード４の撮像が行われ、９つの基準点を示すマーカー４１
〜４９が画像座標系Ｉｍで検出される。そして、検出結果に基づいて、マーカーボード４
とカメラ２の光軸が垂直になり中央のマーカー４５を画像の重心に位置づけるための目標
値が導出されてアーム１１１〜１１５が動く。この時点では、カメラ２の焦点がマーカー
ボード４に合っていないため、マーカーボード４とカメラ２の光軸Ｌが凡そ垂直でマーカ
ー４５の重心と画像の重心がほぼ一致する低精度垂直状態になる。詳細は後述する。
【００３０】
低精度垂直状態になると、ＰＣ３はローカル座標系Ｌｃの仮設定を実行する（Ｓ３）。
具体的には回転軸部材１２１〜１２５の回転角度とカメラ設定とに基づいて暫定的な変換
行列ＲｂＲＬｃが導出される。低精度垂直状態は、カメラ２によって撮像された画像に基
づいて設定されるが、画像座標系Ｉｍと基準座標系Ｒｂとの校正が完了しておらず、カメ
ラ設定も補正されていないこの段階では、回転軸部材１２１〜１２５の回転角度とカメラ
設定とに基づいて設定するローカル座標系ＬｃのｚＬｃ軸はカメラ２の光軸Ｌと平行にな
らず、ローカル座標系ＬｃのｘＬｃ軸はイメージセンサー２０２の水平方向と平行になら
ず、ローカル座標系ＬｃのｙＬｃ軸はイメージセンサー２０２の垂直方向と平行にならな
い。
【００３１】
次にＰＣ３は、焦点調整を実行する（Ｓ４）。焦点調整では、ローカル座標系Ｌｃのｚ
Ｌｃ軸と平行な方向にカメラ２を移動させながらカメラ２によるマーカーボード４の撮像
が繰り返し行われ、画像に写るマーカー４１〜４９のシャープネスが最大になる合焦状態
が探索される。さらにＰＣ３は、探索結果に基づいて合焦状態にするための目標値を導出
し、導出した目標値をロボット１に出力し、アーム１１１〜１１５を動かして合焦状態に
する。詳細は後述する。
【００３２】
次にＰＣ３は、ローカル座標系ＬｃのｚＬｃ軸方向とカメラ２の光軸Ｌとが平行になる
ように、カメラ２によって撮像された画像に基づいて、カメラ設定のｖ成分（ｙ６軸周り
の回転成分）及びｗ成分（ｘ６軸周りの回転成分）を補正するとともに、ローカル座標系
Ｌｃを更新する（Ｓ５）。詳細には次の通りである。
【００３３】
基準座標系Ｒｂにおいて光軸Ｌの方向を示すｚＬｃ軸の方向は、カメラ設定の撮像姿勢
（ｕ，ｖ，ｗ）と回転軸部材１２１〜１２６の回転角度とに一意に関連づけられているた
め、カメラ設定として記憶されているカメラ２の撮像姿勢と、第五アーム１１５に取り付
けられているカメラ２の実際の撮像姿勢とが異なっている場合には、ローカル座標系Ｌｃ
のｚＬｃ軸方向が実際の光軸Ｌの方向からずれる。例えばカメラ設定の撮像姿勢が正確で
ない場合、図９に示すように、ロボットビジョンを用いて光軸Ｌがマーカーボード４に対
して垂直になる状態のＴＣＰの姿勢（ｚ６軸の方向）とカメラ設定の撮像姿勢とから導か
れるローカル座標系ＬｃのｚＬｃ軸方向はマーカーボード４と垂直にならない。マーカー
ボード４に対して垂直でないローカル座標系ＬｃのｚＬｃ軸方向にカメラ２を動かせば、
画像の重心に位置するマーカー４５も画像座標系Ｉｍにおいて動く。
【００３４】
そこでまずＰＣ３は、ローカル座標系ＬｃのｚＬｃ軸の方向にカメラ２を動かす前後に
おいてカメラ２によって撮像したそれぞれの画像から中央のマーカー４５の中心位置を画
像座標系Ｉｍで検出する。そしてＰＣ３は、ｚＬｃ軸の方向にカメラ２を動かす前にカメ
ラ２によって撮像した画像から検出したマーカー４５の中心座標を（ｕ１，ｖ１）とし、
ｚＬｃ軸の方向にカメラ２を動かした後にカメラ２によって撮像した画像から検出したマ
ーカー４５の中心座標を（ｕ２，ｖ２）として、次式（１）、（２）で定める傾き指標Ｈ
ｘ、Ｈｙを導出する。
Ｈｘ＝（ｕ１−ｕ２）…（１）
Ｈｙ＝（ｖ１−ｖ２）…（２）
【００３５】
続いてＰＣ３は、傾き指標Ｈｘ、Ｈｙに基づいて、ＴＣＰに固定されたｘ６軸とｙ６軸
を回転軸とする回転成分ｗ、ｖについてカメラ設定の撮像姿勢を補正するとともに、補正
されたカメラ設定の撮像姿勢と回転軸部材１２１〜１２６の回転角度に基づいてローカル
座標系Ｌｃを更新する。光軸の傾き補正が実行されると、ローカル座標系ＬｃのｚＬｃ軸
は光軸Ｌと平行になる。
【００３６】
光軸の傾き補正において、カメラ設定の撮像姿勢を予め決められた角度だけ補正すると
ともにカメラ２を予め決められた角度だけ回転させる度に傾き指標Ｈｘ，Ｈｙを導出し、
導出した傾き指標Ｈｘ、Ｈｙを予め決められた既定値と比較する処理を、傾き指標Ｈｘ、
Ｈｙが規定値未満になるまで繰り返してもよい。すなわち、カメラ２を動かしながら、カ
メラ設定の撮像姿勢とローカル座標系Ｌｃを徐々に補正しても良い。また、ｚＬｃ軸が光
軸と平行になる補正量を傾き指標Ｈｘ、Ｈｙに基づいて算出しても良い。
【００３７】
次にＰＣ３は、ローカル座標系ＬｃのｘＬｃ軸方向にＴＣＰを移動させることによって
画像の重心に位置するマーカー４５が画像座標系Ｉｍの水平方向にのみ動くように、カメ
ラ設定の撮像姿勢を、Ｊ６座標系のｚ６軸を回転軸とする回転成分ｕについて補正する（
Ｓ６）。詳細には次の通りである。
【００３８】
まずＰＣ３は、カメラ２によって撮像された画像に基づいて、カメラ２の光軸Ｌがマー
カーボード４と垂直でカメラ２から取得する画像の重心（ｕ３，ｖ３）に中央のマーカー
４５が位置するようにカメラ２を移動させる。具体的には、ステップＳ５で更新されたロ
ーカル座標系ＬｃのｚＬｃ軸とカメラ座標系Ｃａｍのｚｃａｍ軸とを平行に保った状態で
、カメラ２によって撮像された画像に基づいて、マーカー４５の中心が画像の重心に位置
するようにカメラ２を移動させる。続いてＰＣ３は、ステップＳ５で更新されたローカル
座標系ＬｃのｘＬｃ軸方向にカメラ２をΔｘだけ移動させる。続いてＰＣ３は、カメラ２
から画像を取得し、取得した画像からマーカー４５の中心位置（ｕ４，ｖ４）を検出する
。ローカル座標系ＬｃのｘＬｃ軸がカメラ座標系Ｃａｍのｘｃａｍ軸と平行に設定されて
いれば、カメラ２がｘＬｃ軸方向に移動しても、画像座標系Ｉｍにおいてマーカー４５は
垂直方向に移動しない。しかし、ローカル座標系ＬｃのｘＬｃ軸がカメラ座標系Ｃａｍの
ｘｃａｍ軸と平行に設定されていなければ、ＴＣＰがｘＬｃ軸方向に移動すると、画像座
標系Ｉｍにおいてマーカー４５は、図１０に示すように画像の重心から垂直方向に移動す
る。そこでローカル座標系ＬｃのｘＬｃ軸とｙＬｃ軸とを、ｚＬｃ軸を中心として回転さ
せる補正角度Δθを次式（３）で導出し、ローカル座標系ＬｃのｘＬｃ軸とｙＬｃ軸の方
向とカメラ設定の回転成分ｕとを補正する。
【数１】
2016221645.tif 000003
【００３９】
次にＰＣ３は、ローカル座標系ＬｃのｚＬｃ軸と平行な軸周りにカメラ２を回転させる
ことによって画像の重心に位置するマーカー４５が画像座標系Ｉｍにおいて動かないよう
にカメラ設定のｘ６成分及びｙ６成分を補正するとともに、ローカル座標系Ｌｃを更新す
る（Ｓ７）。
【００４０】
ここでステップＳ７の処理を図１１に基づいて詳細に説明する。まずＰＣ３は、カメラ
２によって撮像された画像に基づいて、カメラ２の光軸Ｌがマーカーボード４と垂直でカ
メラ２から取得する画像の重心に中央のマーカー４５が位置する初期状態にカメラ２を移
動させる（Ｓ７１）。具体的には、ステップＳ６で更新されたローカル座標系ＬｃのｚＬ
ｃ軸とカメラ座標系Ｃａｍのｚｃａｍ軸とが平行になり、マーカー４５の中心が画像の重
心に位置するようにカメラ２を移動させる。
【００４１】
続いてＰＣ３は基準座標系Ｒｂにおけるローカル座標系Ｌｃの原点の座標を移動後のＴ
ＣＰの位置とカメラ設定に基づいて更新する（Ｓ７２）。この時点において、カメラ設定
のｘｙ成分は補正されていないため、実際のカメラ２の撮像位置とは異なる座標にローカ
ル座標系Ｌｃの原点が設定される。
【００４２】
続いてＰＣ３は、ローカル座標系ＬｃのｚＬｃ軸を回転軸としてカメラ２を規定角度θ
（例えば３０度）だけ回転させる（Ｓ７３）。ローカル座標系Ｌｃの原点は実際のカメラ
２の撮像位置とは異なっているため、マーカー４５の中心を通らない回転軸の周りをカメ
ラ２が回転することになる。
【００４３】
続いてＰＣ３は、回転後のカメラ２から画像を取得し、取得した画像から中央のマーカ
ー４５の中心位置を検出する（Ｓ７４）。回転軸がマーカー４５の中心を通っていないた
め、回転後のマーカー４５の中心位置は回転前とは異なった位置で検出される。
【００４４】
続いてＰＣ３は、規定回数だけステップＳ７３でカメラ２を回転させたか否か判定する
（Ｓ７５）。規定回数だけステップＳ７３でカメラ２を回転させていなければ、ＰＣ３は
ステップＳ７３から処理を繰り返す。ステップＳ７３、７４の処理が繰り返されると、マ
ーカー４５の中心の軌跡は図１２に示すように円弧を描く。
【００４５】
規定回数だけステップＳ７３でカメラ２を回転させていれば、ＰＣ３はマーカー４５の
中心が描いた円弧の中心Ｏ（ｕ７，ｖ７）を画像座標系Ｉｍで導出する（Ｓ７６）。
【００４６】
続いてＰＣ３は、画像座標系Ｉｍで導出した円弧の中心Ｏに対応する点がローカル座標
系Ｌｃの原点となるように基準座標系Ｒｂにおいてローカル座標系ＬＣをｘＬｃｙＬｃ平
面と平行に移動させて更新するとともに、更新されたローカル座標系Ｌｃと基準座標系Ｒ
ｂの対応関係に基づいてカメラ設定のｘ６成分及びｙ６成分を補正する（Ｓ７７）。ロー
カル座標系が確定しておらず画像座標系Ｉｍと基準座標系Ｒｂが校正されていないこの段
階では、ローカル座標系Ｌｃまたは基準座標系Ｒｂと画像座標系Ｉｍとの対応関係は定ま
っていない。そこでＰＣ３は、ステップＳ７６で求めた円弧の中心Ｏにマーカー４５が位
置するようにカメラ２を並進させ、座像座標系Ｉｍにおいて検出するマーカー４５の移動
前後の座標と、基準座標系Ｒｂの移動前後の撮像位置（ＴＣＰとカメラ設定によって定ま
る撮像位置）とに基づいて画像座標系ＩｍとステップＳ７２で設定したローカル座標系Ｌ
ｃとの対応関係を導出する。続いてＰＣ３は、導出した対応関係に基づいて画像座標系Ｉ
ｍにおける円弧の中心Ｏの座標をステップＳ７２で設定したローカル座標系Ｌｃの座標に
変換する。続いてＰＣ３は、ステップＳ７２で設定したローカル座標系Ｌｃにおける円弧
の中心Ｏの座標を基準座標系Ｒｂに変換し、円弧の中心Ｏを原点とする新たなローカル座
標系Ｌｃを導出する。その結果、ステップＳ７２で設定したローカル座標系ＬＣはｘＬｃ
ｙＬｃ平面と平行に移動する。また基準座標系Ｒｂに変換された円弧の中心Ｏのｘｒｂ、
ｙｒｂ座標は、実際のカメラ２の撮像位置のｘｒｂ、ｙｒｂ座標と一致する。そこでＰＣ
３は、円弧の中心Ｏのｘｒｂ、ｙｒｂ座標とＴＣＰの位置座標とに基づいてカメラ設定の
ｘ６成分及びｙ６成分を補正する。
【００４７】
次にＰＣ３は、カメラ２によって撮像された画像に基づいて、カメラ設定のｚ６成分を
補正するとともに、ローカル座標系Ｌｃを更新する（Ｓ８）。詳細は次の通りである。
【００４８】
まずＰＣ３は、カメラ２によって撮像された画像に基づいて、カメラ２の光軸Ｌがマー
カーボード４と垂直でカメラ２から取得する画像の重心に中央のマーカー４５が位置する
初期状態にカメラ２を移動させる。具体的には、ステップＳ７で更新されたローカル座標
系ＬｃのｚＬｃ軸とカメラ座標系Ｃａｍのｚｃａｍ軸とが平行になり、マーカー４５の中
心が画像の重心に位置するようにカメラ２を移動させる。
【００４９】
続いてＰＣ３は、基準座標系Ｒｂにおけるローカル座標系Ｌｃの原点の座標を移動後の
ＴＣＰの位置とカメラ設定に基づいて更新する。この時点において、カメラ設定のｚ６成
分は補正されていないため、実際のカメラ２の撮像位置とは異なる座標にローカル座標系
Ｌｃの原点が設定される。
【００５０】
続いてＰＣ３は、初期状態でカメラ２から画像を取得してマーカー４１〜４９の位置を
画像座標系Ｉｍで検出し、検出したマーカー４１〜４９の位置とマーカー座標系Ｃｂにお
けるマーカー４１〜４９の位置とに基づいてマーカーボード４から撮像位置までの距離Ｈ
を導出する。ここで画像座標系Ｉｍにおける距離とマーカー座標系Ｃｂにおける距離との
関係は、マーカーボード４から撮像位置までの距離Ｈと線形に対応する。したがってＰＣ
３は、画像座標系Ｉｍにおけるマーカー４１〜４９の位置から算定されるマーカー間距離
と、マーカー座標系Ｃｂにおけるマーカー４１〜４９の位置から算定されるマーカー間距
離とにもとづいて距離Ｈを導出する。
【００５１】
続いてＰＣ３は、図１３に示すように、撮像位置を変えずにカメラ２をｘｃａｍ軸また
はｙｃａｍ軸の周りに規定角度θだけ回転させた後に、カメラ２から画像を取得してマー
カー４５の中心位置を検出しながら、再びマーカー４５が画像の重心に位置するまでカメ
ラ２をローカル座標系ＬｃのｘＬｃｙＬｃ平面に対して平行に移動させ、ＴＣＰの移動距
離ΔＤを計測する。なお、この時点においてカメラ座標系Ｃａｍのｘｃａｍ軸はローカル
座標系ＬｃのｘＬｃ軸と平行で、カメラ座標系Ｃａｍのｙｃａｍ軸はローカル座標系Ｌｃ
のｙＬｃ軸と平行である。
【００５２】
カメラ設定のｚ６成分が実際の撮像位置に対して正確に設定されていれば、計測される
ＴＣＰの移動距離とカメラ設定から導出されるカメラ２の移動距離ΔＤと実際のカメラ２
の移動距離ΔＤ'とは等しくなる。しかしこの時点においては、カメラ設定のｚ６成分が
実際の撮像位置に対して正確に設定されていないため、ＴＣＰの位置とカメラ設定から導
かれる撮像位置は実際の撮像位置からｚＬｃ方向（マーカーボード４に対して垂直な方向
）にずれている。このため、図１３に示すように実際のカメラ２の移動距離ΔＤ'とＴＣ
Ｐの位置とカメラ設定から導かれる移動距離ΔＤとは等しくならない。距離Ｈと角度θと
距離ΔＤとカメラ設定のｚ６成分の誤差Δｚの関係は、次式（４）によって表される。
（Ｈ＋Δｚ）ｔａｎθ＝ΔＤ…（４）
【００５３】
そこでＰＣ３は、次式（５）によってΔｚを導出してカメラ設定のｚ６成分を補正して
確定させるとともに、回転軸部材１２１〜１２６の回転角度から導かれる現在のＴＣＰの
位置と補正後のカメラ設定とに基づいてローカル座標系Ｌｃを更新する。
【数２】
2016221645.tif 000004
【００５４】
更新されたローカル座標系Ｌｃは、実際のカメラ２の撮像位置を原点とし、カメラ２の
光軸Ｌと平行なｚＬｃ軸と、イメージセンサー２０２の水平方向と平行なｘＬｃ軸とし、
イメージセンサー２０２の垂直方向と平行なｙＬｃ軸とを有する座標系になる。また確定
したカメラ設定は、カメラ２の撮像位置と撮像姿勢と正確に対応する。
【００５５】
３．光軸傾き補正
次に図５を参照しながら光軸傾き補正の詳細を説明する。光軸傾き補正では、姿勢と位
置が未知のマーカーボード４を基準として実際のカメラ２の撮像位置と撮像方向が補正さ
れる。具体的には、マーカーボード４に固定された座標系Ｃｂに対するカメラ２の撮像位
置と撮像姿勢を導出し、マーカー座標系Ｃｂのｚｃｂ軸がカメラ２の光軸Ｌと平行になる
ようにカメラ２の姿勢を変化させる。
【００５６】
まず目標値導出部３２は、画像取得部３１を介してカメラ２から画像を取得し、画像を
解析することによりマーカー４１〜４９の中心位置を検出する（Ｓ２１）。すなわち、目
標値導出部３２は、作業平面に含まれる９つの基準点の位置を画像座標系において検出す
る。
【００５７】
続いて目標値導出部３２は、マーカー座標系Ｃｂにおいて予め決められているマーカー
ボード４上の各マーカー４１〜４９の中心位置と、画像座標系Ｉｍにおいて検出したマー
カー４１〜４９の中心位置とに基づいて、マーカー座標系Ｃｂにおけるカメラ２の姿勢を
示す姿勢行列Ｃを導出する（Ｓ２２）。式（６）に示す姿勢行列Ｃにおいて、（ａ１１，
ａ２１，ａ３１）はマーカー座標系ＣｂにおけるｘＣａｍ軸の方向を表すベクトルＣｘで
あり、（ａ１２，ａ２２，ａ３２）はマーカー座標系ＣｂにおけるｙＣａｍ軸の方向を表
すベクトルＣｙであり、（ａ１３，ａ２３，ａ３３）はマーカー座標系Ｃｂにおける光軸
Ｌの方向を表すベクトルＣｚである。
【数３】
2016221645.tif 000005
【００５８】
次に、目標値導出部３２は、カメラ２の姿勢行列Ｃに基づいて、光軸Ｌの傾き指標θｘ
、θｙ、θｚを導出する（Ｓ２３）。θｘは、ｘＣａｍ軸とｘＣｂ軸とがなす角度である
。θｙは、ｙＣａｍ軸とｙＣｂ軸とがなす角度である。θｚは、光軸ＬとｚＣｂ軸とがな
す角度である。マーカー座標系Ｃｂにおいて、ｘｃｂ軸の方向を示すベクトルＸは（１，
０，０）、ｙｃｂ軸の方向を示すベクトルＹは（０，１，０）、ｚｃｂ軸の方向を示すベ
クトルＺは（０，０，１）である。
Ｃｘ・Ｘ＝｜Ｃｘ｜ｃｏｓθｘ＝ａ１１・・・（７）
Ｃｙ・Ｙ＝｜Ｃｙ｜ｃｏｓθｙ＝ａ２２・・・（８）
Ｃｚ・Ｚ＝｜Ｃｚ｜ｃｏｓθｚ＝ａ３３・・・（９）
であるから、目標値導出部３２は、次式（１０）、（１１）、（１２）を用いて傾き指
標θｘ、θｙ、θｚを導出する
θｘ＝ａｃｏｓ（ａ１１／｜Ｃｘ｜）・・・（１０）
θｙ＝ａｃｏｓ（ａ２２／｜Ｃｙ｜）・・・（１１）
θｚ＝ａｃｏｓ（ａ３３／｜Ｃｚ｜）・・・（１２）
【００５９】
続いて目標値導出部３２は、傾き指標θｘ、θｙ、θｚが全て規定値以下であるか否か
を判定する（ステップＳ２４）。既定値は例えば０．５度とする。傾き指標θｘ、θｙ、
θｚが全て規定値以下になると、光軸傾き補正を終了する。
【００６０】
傾き指標θｘ、θｙ、θｚが全て規定値以下でない場合、目標値導出部３２は、ステッ
プＳ２３で導出した傾き指標に基づいて、カメラ２の光軸Ｌに対してマーカーボード４が
垂直になり、かつ、光軸Ｌが中央のマーカー４５の中心を通る位置と姿勢にカメラ２を動
かすための目標値を導出する。導出された目標値は、出力部３３によってロボット１の制
御部１４に出力される。その結果、アーム１１１〜１１５が動く（Ｓ２５）。
【００６１】
目標値を出力部３３がロボット１に出力してアーム１１１〜１１５が動いて停止すると
、画像取得部３１がカメラ２から画像を取得し、画像に基づいて目標値導出部３２が傾き
指標を導出して評価する上述のステップＳ２１からステップＳ２４の処理が繰り返される
。
【００６２】
４．焦点調整
次に図６を参照しながら焦点調整の詳細を説明する。焦点調整では、図７に示すように
カメラ２の光軸Ｌと平行な方向にＴＣＰを移動させながら画像に写るマーカー４１〜４９
のシャープネスが最大になる合焦状態が探索される。
【００６３】
はじめに目標値導出部３２は現在のＴＣＰの位置と姿勢を保存する（Ｓ３１）。すなわ
ち、ステップＳ２の傾き補正が終了した時点におけるＴＣＰの位置と姿勢が保存される。
【００６４】
次に、目標値導出部３２は、マーカー座標系Ｃｂでのマーカー４１〜４９の各重心の座
標と、画像座標系でのマーカー４１〜４９の各重心の座標とに基づいて、カメラ２からマ
ーカーボード４までの距離とを導出する（Ｓ３２）。
【００６５】
続いて目標値導出部３２は、カメラ２から取得した画像に基づいてカメラ２の合焦指標
を導出する（Ｓ３４）。合焦指標としては、マーカー４１〜４９が写る領域の微分積算値
（シャープネス）を一定面積で標準化した値を用いることができる。合焦指標を導出する
対象領域は、図８Ａおよび図８Ｂの点線で囲んだ領域のように全てのマーカー４１〜４９
が内側に収まる最小の矩形領域に設定される。すなわち、カメラ２によってマーカー４１
〜４９が撮像された画像から切り出された部分画像に基づいて合焦指標が導出される。
【００６６】
続いて目標値導出部３２は、焦点調整においてカメラ２が撮像した回数が規定回数に達
したか否かを判定する（Ｓ３５）。
【００６７】
焦点調整においてカメラ２が撮像した回数が規定回数に達していない場合、目標値導出
部３２はカメラ２の光軸Ｌと平行でマーカーボード４に接近または離間する方向に所定距
離だけＴＣＰを移動させる（Ｓ３６）。
【００６８】
ＴＣＰを移動させると、画像取得部３１はカメラ２から画像を取得し（Ｓ３７）、ステ
ップＳ３３から処理が繰り返される。すなわち、撮像回数が規定回数に達するまで、撮像
位置を変えながらカメラ２による撮像が行われ、撮像された画像毎に合焦指標が導出され
る。マーカーボード４に接近するほど、マーカー４１〜４９が写る領域は大きくなり、や
がてマーカー４１〜４９は図８Ｃに示すように画像に収まらなくなる。そこで合焦指標を
導出する対象領域は、カメラ２がマーカーボード４に接近するほど大きく設定され、マー
カー４１〜４９が写る領域が画像の端辺に接した後に画像全体になる。このようにして設
定される領域について合焦指標が導出されると、合焦指標がシャープネスであれば、通常
は、徐々に大きくなった後に徐々に小さくなる。
【００６９】
焦点調整においてカメラ２が撮像した回数が規定回数に達すると、目標値導出部３２は
、合焦状態にするための目標値を合焦指標に基づいて導出し、出力部３３は導出された目
標値をロボット１に出力する（Ｓ３８）。具体的には例えば、ステップＳ３４で導出され
る複数の合焦指標のうち最大の合焦指標が得られた位置にＴＣＰを移動させるための目標
値が導出される。導出された目標値がロボット１に出力されると、マーカーボード４はカ
メラ２に対して合焦状態になる。
【００７０】
５．ローカル座標系の自動設定と自動校正
作業平面を示すローカル座標系を設定したり、基準座標系Ｒｂと画像座標系Ｉｍとを校
正するためには、従来であれば、作業平面に対してカメラ２の光軸Ｌを正確に垂直な状態
にセットしたり、Ｊ６軸が作業平面に対して垂直な姿勢で作業平面をタッチアップして作
業平面の位置と姿勢を正確に教示したりといった緻密な準備が必要であった。作業平面が
水平でない場合には、作業平面をタッチアップする操作の難易度が上がる。そして、これ
らの準備が不正確である場合には校正が失敗する。またオペレーターは校正の失敗を知る
ことによって、校正の準備が不正確であったことを知る。したがって、従来は校正とロー
カル座標系の設定に多大な時間を要していた。
【００７１】
ローカル座標系の自動設定と自動校正では、校正が行われていない状態でのロボットビ
ジョン（カメラ２によって撮像される画像）を用いて校正とローカル座標系の設定を自動
で行う。自動で行われる校正の準備には、作業平面を示すマーカーボード４に対してカメ
ラ２の光軸が垂直であって、カメラ２がマーカーボード４に合焦している状態にする自動
制御を含む。このため、マーカーボード４とカメラ２との正確な位置関係が定まっていな
い状態で開始指示を入力するだけで、基準座標系Ｒｂと画像座標系Ｉｍとを、極めて容易
に校正することができる。そして校正の準備が完了している状態で、ローカル座標系Ｌｃ
を設定することにより、作業平面を基準としてロボット１を制御することが容易になる。
【００７２】
以下、ローカル座標系の自動設定と自動校正について図１４を参照しながら説明する。
ローカル座標系の自動設定と自動校正は、オペレーターが開始指示をＰＣ３に入力するこ
とによって起動する。（Ｓ１１）それ以後、オペレーターに一切の操作を要求することな
く完了してもよい。開始指示は、ローカル座標系の自動設定と自動校正を開始するための
トリガーである。従って、ロボット１を操作するための目標値を含んでいなくてもよい。
開始指示を入力する前にオペレーターに求められるのは、カメラ設定をＰＣ３に設定する
ことと、マーカーボード４を作業平面に設置することと、カメラ２によってマーカーボー
ド４をだいたい正面から撮像できる状態にＴＣＰを移動させるジョグ送り操作だけであっ
てもよい。
【００７３】
開始指示がＰＣ３に入力されると、ＰＣ３は、カメラ２の光軸Ｌをマーカーボード４に
対して垂直にする光軸傾き補正を実行する（Ｓ１２）。次にＰＣ３は、焦点調整を実行す
る（Ｓ１４）。次にＰＣ３は、再び光軸傾き補正を実行する。ここで実行される光軸傾き
補正および焦点調整は、自動カメラ設定において述べた光軸傾き補正（Ｓ２）および焦点
調整（Ｓ４）と同一である。２度目の光軸傾き補正が実行されると、カメラ２の光軸Ｌが
マーカーボード４に対して正確に垂直になる。
【００７４】
次にＰＣ３はローカル座標系の設定を実行する（Ｓ１６）。詳細にはまずＰＣ３は、カ
メラ２によって撮像された画像に基づいて、カメラ２の光軸Ｌがマーカーボード４と垂直
でカメラ２から取得する画像の重心に中央のマーカー４５が位置するようにカメラ２を移
動させる。具体的には、光軸傾き補正が実行された状態から、マーカー４５の中心が画像
の重心に位置するようにカメラ２の撮像位置を並進させる。続いてＰＣ３は、ＴＣＰの位
置と姿勢とカメラ設定とに基づいてローカル座標系Ｌｃを設定する。カメラ設定が正確で
あるため、実際のカメラ２の撮像位置を原点とし、マーカーボード４に対して垂直なｚＬ
ｃ軸と、イメージセンサー２０２の水平方向と平行なｘＬｃ軸と、イメージセンサー２０
２の垂直方向と平行なｙＬｃ軸とを有するローカル座標系Ｌｃが設定される。
【００７５】
次にＰＣ３は９点校正を実施する（ステップＳ１７）。この時点においてローカル座標
系のｘＬｃｙＬＣ平面はマーカーボード４に対して平行になっている。このことは、画像
から検出するマーカー４１〜４９の位置に基づいて、ローカル座標系Ｌｃと作業平面を表
す画像座標系Ｉｍを校正できること、および基準座標系Ｒｂと画像座標系Ｉｍを構成でき
ることを意味する。
【００７６】
具体的には、校正部３４は、ローカル座標系Ｌｃが設定された状態（原点に撮像位置を
位置づけ、ローカル座標系とカメラ座標系のｘｙｚ軸をそれぞれ互いに平行にした状態）
でカメラ２から画像を取得して各マーカー４１〜４９の画像座標系Ｉｍにおける位置を検
出して記憶する。次に校正部３４は、検出した各マーカー４１〜４９の中心座標を画像座
標系Ｉｍからローカル座標系Ｌｃに変換し、各マーカー４１〜４９の中心が画像の重心に
位置するようにカメラ２の撮像位置を並進させる。続いて校正部３４は、画像座標系Ｉｍ
において検出した各マーカー４１〜４９の中心座標と、各マーカー４１〜４９の中心が画
像の重心に位置するカメラ２の撮像位置とに基づいて、ローカル座標系Ｌｃと画像座標系
Ｉｍとを校正する。すなわち、ローカル座標系Ｌｃと画像座標系Ｉｍとの非線形な対応関
係を示すパラメーターが、９つのマーカー４１〜４９からｘＬｃｙＬＣ平面に下ろした垂
線とｘＬｃｙＬＣ平面との交点を示すローカル座標系Ｌｃの座標（撮像位置の座標）と、
中央のマーカー４５が画像の重心に位置する画像座標系Ｉｍから検出される９つのマーカ
ー４１〜４９の中心座標とを用いて導出される。ここでは、作業平面上の任意の点につい
て、レンズ２０１の歪みも加味して、正確にローカル座標系Ｌｃと画像座標系Ｉｍとを校
正する。なお、このような非線形変換に用いるパラメーターを導出するために用いる基準
点の数が多いほど校正の精度は高くなる。すなわち基準点を示すマーカーの数が多いほど
校正の精度は高くなる。ローカル座標系Ｌｃと基準座標系Ｒｂとの対応関係は既に決めら
れているため、基準座標系Ｒｂと画像座標系Ｉｍとは、ローカル座標系Ｌｃと画像座標系
Ｉｍとを校正する際に校正しても良いし、校正しなくても良い。またローカル座標系Ｌｃ
と画像座標系Ｉｍとを校正せずに、基準座標系Ｒｂと画像座標系Ｉｍとを校正しても良い
。
【００７７】
６．目標設定
作業平面に対してローカル座標系Ｌｃが設定され、ローカル座標系Ｌｃまたは基準座標
系Ｒｂと、画像座標系Ｉｍとが校正された状態では、作業平面が水平でなくても、作業平
面上の任意の点をロボット１に容易に教示することができる。以下、作業平面上の任意の
点をロボット１に教示する目標設定について図１５を参照しながら説明する。作業平面に
対してローカル座標系Ｌｃの自動設定と自動校正が実行された状態では、作業平面上の任
意の点と画像座標系Ｉｍの任意の点との対応関係が明らかになっているため、目標設定は
、作業平面からマーカーボード４を除去した状態で実行可能である。
【００７８】
まずＰＣ３は、作業平面の画像をカメラ２から取得して画面に表示する（Ｓ２１）。具
体的には、ＰＣ３はローカル座標系Ｌｃの原点に撮像位置を設定し、ローカル座標系Ｌｃ
のｘＬｃ軸、ｙＬｃ軸、ｚＬｃ軸がそれぞれカメラ座標系Ｃａｍのｘｃａｍ軸、ｙｃａｍ
軸、ｚｃａｍ軸と平行になる撮像姿勢を設定してカメラ２に撮像を指示することによって
カメラ２から画像を取得し、取得した画像を表示部３５の画面に表示する。
【００７９】
次にＰＣ３は、ＴＣＰやツールの先端などの制御対象点を制御するための制御パラメー
ターを画像座標系Ｉｍを介して取得する（Ｓ２２）。具体的には例えば指示受付部３０（
制御パラメーター取得部）は、表示した画像の任意の点に対するクリック、タップ等の操
作を、制御対象点を移動させる目標点の位置の指定として受け付ける。すなわちＰＣ３は
、制御パラメーターとしての目標点の座標を画像座標系Ｉｍを介して取得する。このとき
ＰＣ３は、目標点の指定と対応付けて目標姿勢の指定を受け付けても良い。例えば指定さ
れた目標点に対して、数値の直接入力やスライダーの操作等によって目標姿勢を指定でき
るようにしてもよい。目標姿勢は、制御対象点の姿勢を定める座標系の少なくとも１軸の
方向をローカル座標系Ｌｃにおいて指定することによって指定可能である。そしてこのよ
うな目標姿勢の指定がなされない場合には、あらかじめ決められた姿勢を目標姿勢とみな
せばよい。例えば制御対象点がＴＣＰに装着されるドリルビットの先端である場合、ドリ
ルビットの回転軸が作業平面に対して垂直になる姿勢、すなわちドリルビットの回転軸が
ローカル座標系ＬｃのｚＬｃ軸に平行な姿勢を目標姿勢とみなせばよい。
【００８０】
次にＰＣ３は、目標点の座標をローカル座標系Ｌｃに変換する（Ｓ２３）。すなわちＰ
Ｃ３は、画面表示した画像内の任意の点がローカル座標系Ｌｃの特定の点に対応するもの
としてステップＳ２２において制御パラメーターを取得している。したがってここでロー
カル座標系Ｌｃを介して制御パラメーターとしての目標点の位置と目標姿勢がＰＣ３に取
得される。座標変換には、自動校正によって求められたパラメーターが用いられる。
【００８１】
次にＰＣ３は、ローカル座標系Ｌｃに変換された制御パラメーターを用いて制御対象点
を制御する（Ｓ２４）。このとき、制御パラメーターは、ＰＣ３によって、基準座標系Ｒ
ｂにおいて位置を示す座標と、基準座標系Ｒｂにおいて姿勢を示す行列または角度とに変
換されてロボット１に出力された後に、ロボット１の制御部１４によって回転軸部材１２
１〜１２６を駆動するモーター１３１〜１３６の回転角度に変換される。制御部１４は、
モーター１３１〜１３６を回転させることによってＴＣＰを作業平面上の目標点に目標姿
勢で移動させる。
【００８２】
なお、実際には、制御パラメーターの入力を受け付けた後に実行開始のコマンド入力を
ユーザーに求めるなど、制御パラメーターの入力操作が終了したことをＰＣ３に通知する
必要がある。例えば、実行開始のボタンを画面表示しておき、当該ボタンがクリックされ
た場合に、ステップＳ２３の処理を開始すればよい。なお、複数の目標点の設定を一度に
受け付けることも可能である。
【００８３】
制御対象点を移動させる場合に、始点から目標点までの経路をどのように定めても良い
が、例えば、作業平面に対して平行な方向への移動モードと、作業平面に対して垂直な方
向への移動モードを、モードの切換数が最小になるように組み合わせればよい。このよう
に作業平面に対して平行な方向への移動と、作業平面に対して垂直な方向への移動を組み
合わせて制御対象点を移動させる場合、ローカル座標系Ｌｃを介して制御パラメーターを
取得するため、移動方向の計算アルゴリズムの設計が容易である。またこの場合、制御対
象点の移動経路をユーザーが容易に予測できる。
【００８４】
また、制御対象点がツールに設定されている場合、ＰＣ３は、ツールの先端等の制御対
象点の目標点と目標姿勢を、画像座標系Ｉｍを介して取得する。この場合、ＴＣＰに対す
るツールのオフセットを予め設定しておく必要がある。ツールの先端等の制御対象点を制
御するために、ＰＣ３は、ユーザーによって設定される制御対象点の目標点の座標を、オ
フセットを用いて基準座標系ＲｂにおけるＴＣＰの座標に変換し、ユーザーによって設定
される制御対象点の目標姿勢を、オフセットを用いて基準座標系ＲｂにおけるＴＣＰの目
標姿勢に変換する処理を実行してロボット１に出力する。ロボット１の制御部１４は基準
座標系Ｒｂの座標と姿勢行列または角度に基づいて、回転軸部材１２１〜１２６を駆動す
るモーター１３１〜１３６の回転角度を導出する。
【００８５】
以上述べた目標設定では、ユーザーは、作業平面が水平でなくても、画像内の点を指定
するだけで作業平面内の目標点を容易に指定することが可能である。そしてカメラ２が撮
像した画像によって作業平面が表されているため、ユーザーは現実の作業平面の任意の点
と画面表示された画像内の点とを容易に対応付けて認識することができる。
【００８６】
また目標姿勢の指定を受け付ける場合には、作業平面に対して平行なｘＬｃｙＬｃ平面
を有するローカル座標系Ｌｃを介して目標姿勢を取得するため、作業平面が水平でなくて
も、ｘＬｃｙＬｃ平面と平行な作業平面を垂直方向からカメラ２で撮像した画像を見なが
ら目標姿勢を指定するユーザーにとって、現実の作業平面に対する目標姿勢と対応付けて
容易に目標姿勢を指定することができる。
【００８７】
７．他の実施形態
上記実施例では、カメラ２をロボット１のアームに取り付ける構成について説明した。
カメラ２をロボット１のアームに取り付ける構成では、作業平面に対する任意の位置にカ
メラ２を移動させてローカル座標系を設定し、設定したローカル座標系を基準にしてロボ
ット１を操作することができる。すなわち、カメラ２をロボット１のアームに取り付ける
構成では、作業平面に対して撮像位置毎にローカル座標系を設定することができる。
【００８８】
本発明は、カメラ２が作業台、壁、床、天井等に設置されるロボットシステムにも適用
できる。カメラ２が作業台、壁、床、天井等に設置される構成では、作業平面が設定され
てしまえば、カメラ２と作業平面の位置関係は不変になるため、作業平面に対してローカ
ル座標系が１つ設定される。
【００８９】
図１６に示すようにカメラ２が作業台９に設置されている場合、マーカーボードを用い
ずに作業平面を設定し、設定した作業平面に対してローカル座標系を自動設定して自動校
正することもできる。以下、カメラ２が作業台９に設置される場合に、マーカーボードを
用いずに作業平面を設定し、ローカル座標系の自動設定と自動校正を実行する方法につい
て説明する。マーカーボードを用いない場合には、作業平面上の複数の基準点をロボット
１のマニピュレーターで指し示せばよい。具体的には、基準点を指し示すためのマーカー
としてツールチャック１２６１を用いる。このため、図２Ａに示すツールチャック１２６
１の端面を画像認識するためのテンプレートをＰＣ３に予め記憶しておく。
【００９０】
作業平面を設定するにあたり、ＰＣ３は、作業平面に対してＪ６軸が垂直な姿勢で作業
平面上の複数の基準点のそれぞれにツールチャック１２６１のＴＣＰを移動させる。ここ
では図１７に示すように作業平面ＷＳに対して基準点Ｐ１〜Ｐ９が設定されるものとする
。そして、ＰＣ３は、各基準点にＴＣＰが位置する状態で撮像された画像をカメラ２から
取得し、画像座標系Ｉｍにおいて基準点Ｐ１〜Ｐ９の位置を検出する。
【００９１】
ここでカメラ２によって撮像される画像について図１８を用いて説明する。９つの基準
点Ｐ１〜Ｐ９にマーカーとしてのＴＣＰを移動させる毎にカメラ２によってツールチャッ
ク１２６１を撮像すると、カメラ２から取得する各画像におけるツールチャック１２６１
の位置は、基準点Ｐ１〜Ｐ９の位置に応じて異なることになる。基準座標系Ｒｂで作業平
面内に設定された各基準点にＴＣＰを動かして、それぞれの基準点におけるＴＣＰを基準
座標系Ｒｂにおいて固定されたカメラ２で撮像したｎ個の画像から得られる基準点の位置
情報は、ｎ個の基準点を示すマーカーが付されているマーカーボードを特定の位置と姿勢
に保持し、その状態でマーカーを撮像した１つの画像から得られる基準点の情報とほぼ同
じである。前者の情報には、厳密な基準座標系と画像座標系の対応関係が反映され、後者
の情報には、基準座標系とマーカー座標系を合成した座標系と画像座標系の対応関係が反
映される。基準座標系とマーカー座標系が厳密な線形な関係にあるとは限らないため、厳
密に基準座標系と画像座標系を校正するには、前者の情報を用いることが好ましい。
【００９２】
作業平面にマーカーボードを設置してマーカーの位置を画像座標系Ｉｍにおいて検出す
るかわりに、作業平面にマーカーを移動させて基準点Ｐ１〜Ｐ９の位置を画像座標系Ｉｍ
において検出すれば、既に説明した自動カメラ設定、自動校正、目標設定のいずれも同様
に実施することができる。ただし、基準点によって作業平面を定めることになるため、作
業平面を示すローカル座標系Ｌｃはカメラ２によって撮像する画像に基づいて設定するの
ではなく、予め決めておくことになる。したがってＴＣＰ等のマーカーを移動させる際に
は、予め決められたローカル座標系Ｌｃを介してマーカーを制御することになる。
【００９３】
ここまでローカル座標系ＬｃのｘＬｃｙＬｃ平面上の点を作業平面上の点に対応付けて
きたが、ローカル座標系ＬｃのｘＬｃｙＬｃ平面上の点を作業平面と平行で作業平面から
離れた平面上の点に対応付けても良い。例えばこれまで説明したとおりにマーカーボード
を作業平面に設置してローカル座標系Ｌｃを設定した後に、ローカル座標系Ｌｃの原点を
ｚＬｃ軸方向に移動させてローカル座標系Ｌｃを更新しても良い。
【００９４】
なお、作業面からローカル座標系ＬｃのｘＬｃｙＬｃ平面までの距離は、マーカー座標
系において間隔が既知の２つ以上のマーカーを画像座標系Ｉｍにおいて検出し、マーカー
座標系におけるマーカー同士の間隔と画像座標系Ｉｍにおけるマーカー同士の間隔とに基
づいて導出しても良いし、ＴＣＰやツールで作業平面をタッチアップする過程でＴＣＰの
移動距離を計測して作業面からローカル座標系ＬｃのｘＬｃｙＬｃ平面までの距離を導出
しても良い。
【符号の説明】
【００９５】
４１-４９…マーカー、１２１-１２６…回転軸部材、１３１-１３６…モーター、１１１-
１１５…アーム、１２１-１２６…回転軸部材、１…ロボット、２…カメラ、３…ＰＣ、
４…マーカーボード、９…作業台、１４…制御部、３０…指示受付部、３１…画像取得部
、３２…目標値導出部、３３…出力部、３４…校正部、３５…表示部、１１０…基台、１
１１…第一アーム、１１２…第二アーム、１１３…第三アーム、１１４…第四アーム、１
１５…第五アーム、２０１…レンズ、２０２…イメージセンサー、１２６１…ツールチャ
ック、Ｌ…光軸、Ｔ…ツール、ＴＪ…軸部、ＷＳ…作業平面
【図１】
2016221645.tif 000006
【図２】
2016221645.tif 000007
【図３】
2016221645.tif 000008
【図４】
2016221645.tif 000009
【図５】
2016221645.tif 000010
【図６】
2016221645.tif 000011
【図７】
2016221645.tif 000012
【図８】
2016221645.tif 000013
【図９】
2016221645.tif 000014
【図１０】
2016221645.tif 000015
【図１１】
2016221645.tif 000016
【図１２】
2016221645.tif 000017
【図１３】
2016221645.tif 000018
【図１４】
2016221645.tif 000019
【図１５】
2016221645.tif 000020
【図１６】
2016221645.tif 000021
【図１７】
2016221645.tif 000022
【図１８】
2016221645.tif 000023