概要
ロボット(本体)モデルを作るためのURDFファイルについての概要説明、launchファイル作成してみて、作成したURDFモデルをRVitで表示してみるまでの流れをメモした
モデル構成
モデルは主に3つの部分で構成している。
Pkgを作ってみよう(workspace/src)
PKG作成ターミナルコマンド
catkin_create_pkg mbot_description urdf xacro
Pkgできたら、手動で4つのフォルダを作成 in folder mbot_description
1.urdf モデルファイル用
2.meshes モデル外観の3Dデーターファイル用
3.launch 起動ファイル用
4.config rvizパラメータ設定ファイル用
下記コマンドを使えば自動で生成してくれる。
mkdir urdf launch meshes config
urdfを作って見る
mrobot_chassis.urdf の例は下記参照して作成できる。
urdfファイル(mrobot_chassis.urdf)
<?xml version="1.0" ?>
<robot name="mrobot_chassis">
<link name="base_link">
<visual>
<origin xyz=" 0 0 0" rpy="0 0 0" />
<geometry>
<cylinder length="0.005" radius="0.13"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
一部省略
</robot>
urdfをチェックして見る
urdfモデル作成できたら,liburdfdom_toolにて確認できる。
sudo apt-get install liburdfdom-tools
check_urdf mrobot_chassis.urdf
これでロボットの構成が表示されていれば、概ねLinkとJointは問題なさそう。
より詳細な内容を確認したい場合は下記コマンドにて構成をpdfでoutputして見ることができる。
urdf_to_graphiz mrobot_chassis.urdf
launchファイルを作って見る
nano display_mrobot_chassis_urdf.launch
中身
<launch>
<!-- robot bodyのモデルを起動 -->
<param name="robot_description" textfile="$(find mbot_description)/urdf/mrobot_chassis.urdf" />
<!-- GUI パラメータ設定 -->
<param name="use_gui" value="true"/>
<!-- joint_state_publisher -->
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<!-- robot_state_publisher,tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- rviz可視化設定 -->
<node pkg="rviz" type="rviz" name="rviz" />
</launch>
注釈:
joint_state_publisherは何?
これはROSのツール(node)、起動した時にJointの位置をコントロールするUIも一緒に起動され、UIのラジオボタンを調整するとGUI(RVit)上にあるJointを動かすことができる。
robot_state_publisherは何?
ロボットモデルにあるLink、Jointの位置関係をTF形式で3次元情報として出している。
モデルを表示して見る
ターミナルで動かしてみる
roslaunch mrobot_description display_mrobot_chassis_urdf.launch
エラなくうまく行けば、下記のようなモデル画面が起動され、画面のようにモデルを表示するように設定すれば、モデルが表示されるようになる。
下記のようなエラが発生した場合,apt-getのコマンドを使ってappをインストール必要。
ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of type [state_publisher] in package [robot_state_publisher]. Make sure file exists in package path and permission is set to executable (chmod +x)
sudo apt-get install ros-noetic-robot-state-publisher
モデルはこんな感じになりました。
Vizにどの座標系でデータを表示するか指定することが必要です。RViz画面中の「Fixed Frame」の右側でbase_linkを選択します。
Rviz表示するための設定はモデルによって変えることが多いので、その設定を保存することができる。
保存した表示設定コンフィグはlaunchファイルの中に入れてあげれば、次開く時に同じ設定で開いてくれるようになる。
コンフィグ指定する前はデフォルトの設定で開いている。
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mrobot_description)/config/mrobot_chassis.rviz" required="true" />