ロボットの座標系とカメラの座標系#

ロボット工学において,座標系の理解は非常に重要である.特にロボットの座標系とカメラの座標系は異なる定義を持つため,両者を正しく理解し適切に座標変換を行う必要がある.

ロボットの座標系#

ロボットの座標系では,x軸がロボットの正面方向に向くことが一般的である.この定義は,ロボットが前進する方向を直感的に理解しやすくするためのものである.

../_images/robot_x_direction.png

図 76 ロボットの前方方向の座標系.赤(x軸)がロボットの正面方向,緑(y軸)が左方向,青(z軸)が上方向を示す.#

カメラの座標系#

一方,カメラ座標系はコンピュータビジョンの分野で標準的に使用される座標系である.カメラのレンズを原点とし,通常以下のように定義される:

  • x軸:カメラから見て右方向

  • y軸:カメラから見て下方向

  • z軸:カメラの前方(レンズの光軸方向)

../_images/robot_camera_direction.png

図 77 ロボット頭部のカメラ座標系.カメラの光軸方向(z軸)がロボットの前方を向いている.#

ピンホールカメラモデル#

OpenCVなどのコンピュータビジョンライブラリでは,ピンホールカメラモデルが広く使用されている.このモデルでは,3次元空間の点がカメラの透視投影によって2次元画像平面に投影される.

../_images/pinhole_camera_model.png

図 78 ピンホールカメラモデル.3次元空間の点\(P = (X_w, Y_w, Z_w)\)が,カメラ座標系を経由して画像座標\((u, v)\)に投影される.この図はOpenCV演習などで学んだように,画像座標の原点が左上にあり,u軸が右方向,v軸が下方向を向くことを示している.#

参考:OpenCV Camera Calibration and 3D Reconstruction

座標系の違いに注意#

ロボットの座標系とカメラの座標系は異なるため,カメラで認識した物体の位置をロボットの動作計画に使用する際は,必ず座標変換を行う必要がある.

例えば,カメラが物体を認識した場合:

  1. 認識結果はカメラ座標系で得られる(カメラ相対の位置・姿勢)

  2. ロボットのモデルからカメラの位置・姿勢を取得する

  3. カメラ座標系からロボットのworld座標系への変換を計算する

  4. 変換後の座標を使ってロボットの動作を計画する

この座標変換の詳細については,演習資料のCheckerboard認識と座標変換のセクションを参照すること.

まとめ#

  • ロボット座標系:x軸が前方,y軸が左方向,z軸が上方向(一般的な定義)

  • カメラ座標系:x軸が右方向,y軸が下方向,z軸が前方(光軸方向)

  • カメラで取得した情報をロボット制御に使用する際は,必ず座標変換が必要

  • OpenCVなどのライブラリはピンホールカメラモデルに基づいた座標系を使用