【Gazebo】TurtleBotのカメラの焦点距離(Focal Length)について
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
https://jp.mathworks.com/help/robotics/examples/read-model-and-simulation-properties-from-gazebo.html を拝見しながら、現在、ターゲット物体のトラッキングのシミュレーションを仮想マシン上のGazeboおよびMATLABを用いて構築中です。
GazeboのTurtleBotのカメラパラメータ(ex. 焦点距離)をMATLAB上で取得したいのですが、どのようにすればよいでしょうか。
【使用ツールボックス】Robotics System Toolbox, Image Processing Toolbox
お手数ですが、ご回答いただけると幸いです。よろしくお願い申し上げます。
2 Commenti
Kei Otsuka
il 17 Gen 2018
カメラのパラメータはUDFファイルに記載されているのですが、これをMATLABから読み取りたい、ということでしょうか? (KinectカメラオブジェクトのUDFファイルは以下にあります)
~/.gazebo/models/kinect/model.sdf
Risposta accettata
Tohru Kikawada
il 19 Gen 2018
> RoSのドキュメント(http://docs.ros.org/api/sensor_msgs/html/msg/CameraInfo.html)を調べたところ、sensor_msgs/CameraInfo内のKマトリックス内に焦点距離f_x、f_yが記載されているとのことだったので、以下のようにしてMATLABから読み取ろうと考えたのですが、正しいでしょうか。
はい、正しいです。
> また、この場合、f_x、f_yの単位(Unit)はどうなるのでしょうか。
単位としてはピクセルになります。 実寸(メートル)にしたい場合には画素サイズ(センサーの1ピクセルあたりの実寸値)を掛け算する必要があります。 こちら のサイトに換算方法について記載があるようです。ご参考まで。
ちなみに、Computer Vision System Toolboxをお持ちであれば、歪パラメーターを取得して、歪補正をかけたりできるので便利です。
% 初期化
clear; close all; clc;
% GazeboにROSで接続
rosshutdown;
rosinit('192.168.112.130');
% サブスクライバーの作成
imsub = rossubscriber('/camera/rgb/image_raw');
imInfo = rossubscriber('/camera/rgb/camera_info');
% 画像の取得 & Figureウィンドウでの表示
latestImg = readImage(receive(imsub));
imshow(latestImg)
% latestImg 取得時のTurtleBotのカメラパラメータ(Kマトリックス)の取得
CameraInfo = receive(imInfo);
K = reshape(CameraInfo.K,[3 3]); % 単位はすべてpixel
D = CameraInfo.D(1:3); % ひずみパラメーターはk1からk3まで使用可能
% カメラパラメーターオブジェクトを作成
cameraParams = cameraParameters('IntrinsicMatrix',K,'RadialDistortion',D)
% ひずみ除去 (今回はひずみパラメーターが0のため画像は変化しない)
latestImgUndistorted = undistortImage(latestImg,cameraParams);
figure, imshow(latestImgUndistorted);
実行結果:
K =
554.2547 0 0
0 554.2547 0
320.5000 240.5000 1.0000
D =
0
0
0
cameraParams =
cameraParameters のプロパティ:
Camera Intrinsics
IntrinsicMatrix: [3×3 double]
FocalLength: [554.2547 554.2547]
PrincipalPoint: [320.5000 240.5000]
Più risposte (0)
Vedere anche
Categorie
Scopri di più su ネットワーク接続と調査 in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!