ブログ

URDFの構造をPDFに出力する便利なツール『urdf_to_graphiz』をDocker経由で使う

この記事では、URDFの構造をコマンド1つでPDFに出力できる、urdf_to_graphizをDockerから使う際のメモです。

そもそもurdf_to_graphizとは

urdf_to_graphizとは、URDFの構造をコマンド1つでPDFに出力できるツールです。例えば、以下のようなURDFがあったときに、それぞれのリンクがどのようにして繋がれているのかを確認したいとします。

<?xml version="1.0"?>
<robot name="simple_robot">
  <!-- ベースリンク -->
  <link name="base_link">
    <visual>
      <geometry>
        <box size="1 1 1"/> <!-- サイズ 1x1x1の直方体 -->
      </geometry>
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <material name="gray">
        <color rgba="0.5 0.5 0.5 1.0"/> <!-- グレー色 -->
      </material>
    </visual>
    <collision>
      <geometry>
        <box size="1 1 1"/>
      </geometry>
      <origin xyz="0 0 0" rpy="0 0 0"/>
    </collision>
    <inertial>
      <mass value="1.0"/>
      <inertia ixx="0.1" ixy="0.0" ixz="0.0" iyy="0.1" iyz="0.0" izz="0.1"/>
      <origin xyz="0 0 0" rpy="0 0 0"/>
    </inertial>
  </link>

  <!-- 2番目のリンク -->
  <link name="second_link">
    <visual>
      <geometry>
        <box size="0.5 0.5 0.5"/> <!-- サイズ 0.5x0.5x0.5の直方体 -->
      </geometry>
      <origin xyz="0 0 1.0" rpy="0 0 0"/> <!-- base_linkの上に配置 -->
      <material name="blue">
        <color rgba="0 0 1 1.0"/> <!-- 青色 -->
      </material>
    </visual>
    <collision>
      <geometry>
        <box size="0.5 0.5 0.5"/>
      </geometry>
      <origin xyz="0 0 1.0" rpy="0 0 0"/>
    </collision>
    <inertial>
      <mass value="0.5"/>
      <inertia ixx="0.05" ixy="0.0" ixz="0.0" iyy="0.05" iyz="0.0" izz="0.05"/>
      <origin xyz="0 0 0" rpy="0 0 0"/>
    </inertial>
  </link>

  <!-- ベースリンクと2番目のリンクを接続するジョイント -->
  <joint name="fixed_joint" type="fixed">
    <parent link="base_link"/>
    <child link="second_link"/>
    <origin xyz="0 0 1.0" rpy="0 0 0"/> <!-- 位置と向きを指定 -->
  </joint>
</robot>

ファイル名が、simple_robot.urdfだとしたら、以下のようなコマンドを打ち込むことで、このURDFの構造をPDFとして出力してくれます。

urdf_to_graphiz simple_robot.urdf

出力されたPDFを表示するとこんな感じ。

この場合は、非常に単純なURDFなのであまりありがたみを感じないかもしれませんが、もし複雑なURDFの場合は、urdf_to_graphizを使わないと構造を理解するのに苦労することになります...

なぜDockerから使うのか?

これはurdf_to_graphizに限ったことではありませんが、ツールによっては新しいubuntuのバージョンに対応できていなかったり、はたまた、windowsから使用したかったりすることがあり、その場合に、インストールにてこずると時間を浪費してしまうためです。少なくとも、私の場合は常にどのPCにもDockerを導入しており、何か困ったことがあれば、Dockerで動くようにしておけば間違いがありません。なので、こちらもDockerから使用できるようにし、その備忘録として公開しておこうというのがこの記事の趣旨になります。

Dockerイメージの構築と使い方

以下を実行して、Dockerイメージを構築します。

git config --global core.autocrlf false # Windowsユーザはこの行が必須
git clone https://github.com/AkamisakaAtsuki/urdf_to_graphiz_docker.git
cd urdf_to_graphiz_docker
docker build -t urdf_to_graphiz_docker .
cd ..

エラーなくビルドできたら、以下のコマンドを打ち込むだけでURDFの構造をPDFに出力できます。

docker run --rm -v .:/data urdf_to_graphiz_docker simple_robot.urdf

内容は以上です。

最後までお読みいただきありがとうございました。

  • この記事を書いた人
管理人

管理人

このサイトの管理人です。 人工知能や脳科学、ロボットなど幅広い領域に興味をもっています。 将来の目標は、人間のような高度な身体と知能をもったパーソナルロボットを開発することです。 最近は、ロボット開発と強化学習の勉強に力を入れています(NOW)。

-ブログ

PAGE TOP