項目 | 値 |
---|---|
CPU | Core i5-8250U |
Ubuntu | 20.04 |
ROS | Noetic |
Gazebo | 11.9.0 |
インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。
概要
Gazeboでシミュレーションした車輪ロボットをRvizで表示してみます。まずは第1弾としてロボットの形をurdfで記述して表示します。
ソースコード
gazebo1_lecture/urdf/wheel_robot_simple.urdf
<?xml version="1.0"?>
<robot name="dtw_robot">
<material name="gray">
<color rgba="0.5 0.5 0.5 1.0"/>
</material>
<material name="red">
<color rgba="1.0 0.0 0.0 1.0"/>
</material>
<link name="base_link"/>
<joint name="body_joint" type="fixed">
<origin xyz="0 0 0.1" rpy="0 0 0" />
<parent link="base_link"/>
<child link="body_link"/>
</joint>
<link name="body_link">
<visual>
<origin xyz="-0.1 0 0" rpy="0 0 0" />
<geometry>
<box size="0.4 0.3 0.1" />
</geometry>
<material name="gray" />
</visual>
</link>
<joint name="back_ball_joint" type="fixed">
<origin xyz="-0.23 0 -0.05" rpy="0 0 0" />
<parent link="body_link"/>
<child link="back_ball_link"/>
</joint>
<link name="back_ball_link">
<visual>
<geometry>
<sphere radius="0.05" />
</geometry>
<material name="gray" />
</visual>
</link>
<joint name="left_wheel_joint" type="fixed">
<origin xyz="0 0.18 0" rpy="-1.5707 0 0" />
<parent link="body_link"/>
<child link="left_wheel_link"/>
</joint>
<link name="left_wheel_link">
<visual>
<geometry>
<cylinder length="0.04" radius="0.072" />
</geometry>
<material name="red" />
</visual>
</link>
<joint name="right_wheel_joint" type="fixed">
<origin xyz="0 -0.18 0" rpy="-1.5707 0 0" />
<parent link="body_link"/>
<child link="right_wheel_link"/>
</joint>
<link name="right_wheel_link">
<visual>
<geometry>
<cylinder length="0.04" radius="0.072" />
</geometry>
<material name="red" />
</visual>
</link>
</robot>
- Gazeboで使用するSDFモデルを同様のリンクの構成にします。
- 物理演算に必要な重さなどの要素は必要ありません。
- タイヤのlinkとつながるjointは本来は回転するジョイントですが、ROSのレイヤーではこの回転は扱わないので、urdfではfixedで記述します。
gazebo1_lecture/launch/wheel_robot_simple_rviz_only.launch
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<arg name="model" default="$(find gazebo1_lecture)/urdf/wheel_robot_simple.urdf"/>
<arg name="rvizconfig" default="$(find gazebo1_lecture)/rviz/wheel_robot_simple.rviz" />
<param name="robot_description" command="$(find xacro)/xacro $(arg model)"/>
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>
実行
上記のurdfをRvizで表示します。
各ターミナルごとに実行前にsource ~/catkin_ws/devel/setup.bashを実行する必要があります。
実行
roslaunch gazebo1_lecture wheel_robot_simple_rviz_only.launch