【ROS】urdfでparentとchildの関係性を調べる
wiki.ros.org こちらを見ながら進めていった。
myfirst.urdf
<?xml version="1.0"?> <robot name="myfirst"> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> </visual> </link> </robot>
$ roslaunch urdf_tutorial display.launch model:=myfirst.urdf
lengthはz軸の長さ、radiusは半径でy軸。
03-origins.urdf
<?xml version="1.0"?> <robot name="origins"> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> </visual> </link> <link name="right_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> </visual> </link> <joint name="base_to_right_leg" type="fixed"> <parent link="base_link"/> <child link="right_leg"/> <origin xyz="0 -0.22 0.25"/> </joint> </robot>
$ roslaunch urdf_tutorial display.launch model:=03-origins.urdf
このurdfファイルでこの位置に持っていくことができるみたいだが、rpy、xyzを1つ1つ見ていかないと分からなくなりそうなので、試した結果を載せていく。 いじる部分は
right_legの
<origin rpy="0 1.57075 0" xyz="0 0 -0.3"/>
と base_to_right_legの
<origin xyz="0 -0.22 0.25"/>
の部分
パターン1
right_leg:origin rpy="0 0 0" xyz="0 0 0"
base_to_right_leg:origin xyz="0 0 0"
パターン2
right_leg:origin rpy="0 1.57075 0" xyz="0 0 0"
base_to_right_leg:origin xyz="0 0 0"
パターン3
right_leg:origin rpy="0 1.57075 0" xyz="0 -0.3 0"
base_to_right_leg:origin xyz="0 0 0"
パターン4
right_leg:origin rpy="0 1.57075 0" xyz="0 -0.3 0"
base_to_right_leg:origin xyz="0 0.22 0"
パターン5
right_leg:origin rpy="0 1.57075 0" xyz="0 -0.3 0"
base_to_right_leg:origin xyz="0 0.22 0.25"
これで、rpy、xyzを弄るときに参考になるはず。
棒を両サイドに出現させる
04-materials.urdf
<?xml version="1.0"?> <robot name="materials"> <material name="blue"> <color rgba="0 0 0.8 1"/> </material> <material name="white"> <color rgba="1 1 1 1"/> </material> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> <material name="blue"/> </visual> </link> <link name="right_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> </link> <joint name="base_to_right_leg" type="fixed"> <parent link="base_link"/> <child link="right_leg"/> <origin xyz="0 -0.22 0.25"/> </joint> <link name="left_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> </link> <joint name="base_to_left_leg" type="fixed"> <parent link="base_link"/> <child link="left_leg"/> <origin xyz="0 0.22 0.25"/> </joint> </robot>
簡単ですね。