目的
Gazebo内でカメラを使いたいと思い、sdfファイルからSensorPluginを使ってカメラを使用。
ロボットの任意の位置に配置し、ステレオ形式にしようかと思ったが一癖あったので、わかったことを書きます。
配置の仕方
<link>
タグの中の<pose>
タグでx,y,z,roll,pich,yawを指定することで任意の位置に配置することができます。
以下にプログラムをのせておきます。
<link name="left_head_camera_frame">
<pose>0.032 0.1 0.3 0 0 0</pose>
<inertia>
<ixx>0.001</ixx>
<ixy>0.000</ixy>
<ixz>0.000</ixz>
<iyy>0.001</iyy>
<iyz>0.000</iyz>
<izz>0.001</izz>
</inertia>
<sensor type="camera" name="left_head_camera">
.
.
.
</sensor>
</link>
<sensor>
タグの中はこちら【1】を参照ください。
わかったこと
自分は物の配置は<joint>
タグで可能だと思っていた。
しかし、<joint>
タグはあくまでもTF構造を定義するのみであり、シミュレーター内の物理的な物の配置、姿勢を定義できない。
<joint>
タグの役割
TF構造を定義するを定義するために<joint>
タグを用いる。具体的には以下のタグを用いて定義する。
-
<parent>
親リンク(親座標系)の名前を記入 -
<child>
子リンク(子座標系)の名前を記入 -
<pose>
親リンクにおける子リンク原点の位置 -
<axis>
<xyz>
タグでroll pich yawを指定
以下にプログラムをのせておきます。
<joint name="left_head_camera_joint" type="fixed">
<parent>base_link</parent>
<child>left_head_camera_frame</child>
<pose>0.032 0.1 0.3 0 0 0</pose>
<axis>
<xyz>0 0 1</xyz>
</axis>
</joint>
参照URL
【1】https://classic.gazebosim.org/tutorials?tut=ros_gzplugins