0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

URDF+launch+Rvizロボットモデル memo

Last updated at Posted at 2023-05-05

概要

ロボット(本体)モデルを作るためのURDFファイルについての概要説明、launchファイル作成してみて、作成したURDFモデルをRVitで表示してみるまでの流れをメモした

モデル構成

モデルは主に3つの部分で構成している。

1.手足を記述したLinkラベル
Link.PNG

2.関節を記述したJointラベル
joint.PNG

3.全体の手足と関節を記述したrobotラベル
robot.PNG

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

modelfolder.PNG

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

Screenshot from 2023-06-11 21-19-16.png
これでロボットの構成が表示されていれば、概ねLinkとJointは問題なさそう。

より詳細な内容を確認したい場合は下記コマンドにて構成をpdfでoutputして見ることができる。

urdf_to_graphiz mrobot_chassis.urdf

Screenshot from 2023-06-11 21-22-06.png
実際pdfの中身を開くとこんな感じ。
Screenshot from 2023-06-11 21-21-45.png

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次元情報として出している。
Screenshot from 2023-07-01 14-45-02.png

モデルを表示して見る

ターミナルで動かしてみる

roslaunch mrobot_description display_mrobot_chassis_urdf.launch

エラなくうまく行けば、下記のようなモデル画面が起動され、画面のようにモデルを表示するように設定すれば、モデルが表示されるようになる。

add robotmodel.PNG

下記のようなエラが発生した場合,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

モデルはこんな感じになりました。

Screenshot from 2023-06-11 21-30-43.png

Vizにどの座標系でデータを表示するか指定することが必要です。RViz画面中の「Fixed Frame」の右側でbase_linkを選択します。
Screenshot from 2023-07-01 22-21-44.png

Rviz表示するための設定はモデルによって変えることが多いので、その設定を保存することができる。
キャプチャ.PNG
保存した表示設定コンフィグはlaunchファイルの中に入れてあげれば、次開く時に同じ設定で開いてくれるようになる。
コンフィグ指定する前はデフォルトの設定で開いている。

 <node name="rviz" pkg="rviz" type="rviz" args="-d $(find mrobot_description)/config/mrobot_chassis.rviz" required="true" />

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?