##本章の流れ
本章では試作した3D-CADモデルからurdfを生成し、それをROS上のrvizで表示することまでを記載します。
これが出来れば、ロボットを画面の中で表現でき、遠隔地からでもロボットの状況をつぶさに把握できる環境を手に入れることが出来ます。
その手順は以下となります。
- モデル(3D-CADモデル)を用意する
- blenderに取り込む
- urdfのディレクトリ作成
- urdfを記述する
- urdfが正しく出来ているか確認する
- rvizで確認する
実施環境
OS : Ubuntu16.04LTS. , Ubuntu18.04LTS.
ROS環境 : kinetic , melodic
対象PC :LattepandaAlphaによる動作(Intel Core m3-7y30 程度の動作)を想定
1. モデル(3D-CADモデル)を用意する
3D-CADモデルを準備するには、現在基本的に無料で使えるCADや、ホームーユーザーライセンスと言った自宅でも3D-CADを利用できる環境が少しづつ増えてきました。そんな中今回はFusion360を使って設計したメカナムロボットを用意しました。この3D-CADモデルを作成するに当たりモデルの向きを注意して作ると良いでしょう。
こちらの下図の様なXYZの向きで配置すると、途中の段階で混乱せずに円滑に変換していけると思います。
3D-CADモデルが配置出来たらFBXファイルに変換します。
普通だとSTLファイルに変換したものをurdfに使ったりするケースも多いのですが、全てのパーツを一変にSTLへ変換すると、色が全て同じ色になってしまったり、STLファイル生成時にエラーが内包されていて読み取れず、ROS上でurdfを何故か表示できない場面がありました。
そのため$\huge{FBXファイル形式で保存}$することをお勧めします。
2. blenderに取り込む
先程までに作成したFBXファイルをフリーソフトであるblenderに取り込み、urdfで使えるCOLLADAファイル(*.dae)に変換します。
まずはblenderを起動し、COLLADAファイルを生成するまで図解します。
この色の修正方法については以下が参考になると思います。
Blenderの易しい使い方 : https://blender-cg.net/material/
3. urdfのディレクトリ作成
catkin_ws/srcの中にurdf用のパッケージを作成します。
cd ~/catkin_ws/src
catkin_create_pkg crawler_description
ディレクトリ構成の参考として、catkin_ws/src内に以下のディレクトリ構成とファイルを記入しています。
4. urdfを記述する
ではurdfについての内容を以下に記します。今回作成したCOLLADA(*.dae)ファイルによって記述内容がとても簡単な内容になっています。これは原点配置、配色が既に完了しているためです。
<?xml version="1.0"?>
<robot name="mechanum_robot">
<link name="base_link">
<visual>
<geometry>
<mesh filename="package://crawler_description/meshes/yonku.dae"/>
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
</visual>
</link>
</robot>
もし個別に動く関節が必要であったり、可動範囲を限定させたい場合などはこちらを参考に
内容を追加してみて下さい。
・GR-ROSEでいこう!
↑多関節ロボットアームのurdf作成や、SLAM、ROS2など多彩な内容があります。
・Create your own urdf file
・ROS講座13 URDFを記述する1
5. urdfが正しく出来ているか確認する
先程作成したファイルが正しく出来ているか、以下のコマンドを記入して確認できます。
crawler_description/urdfは、自身で作成しているurdfディレクトリであり、yonku.urdfは
自身で作成したurdfファイルを指定します。
roscd crawler_description/urdf
check_urdf yonku.urdf
6. rvizで確認する
ではrviz上で簡単にurdfを簡単に表示出来るようにするため、launchディレクトリにdisplay.launchを作成します。
<launch>
<arg name="model" />
<arg name="gui" default="True" />
<param name="robot_description" textfile="$(arg model)" />
<param name="use_gui" value="$(arg gui)"/>
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find crawler_description)/urdf.rviz" required="true" />
</launch>
このdisplay.launchを使ってrviz上にurdfを表示させます。
roscore
roslaunch crawler_description display.launch model:=`(rospack find crawler_description)`/urdf/yonku.urdf gui:=False
rvizが表示されたら左側のテーブルに記載されたGlobal Optionの中にあるFixed Frameには、base_linkを記入しておきます。またAddボタンを押してRobotModelを追加します。
やっぱり$\huge{自分で作ったロボットが画面に現れると}$
$\huge{ 嬉しいものですね!!}$
次は5章.SLAMを使ってみる
遂に次はSLAMを使ってみます!SLAMの中でもgmappingとcartographerを使ってみたいと思います!
これが出来れば、ROSを使って良かったと実感できると思いますのでお楽しみに!
5章.SLAMを使ってみる
今までの道のり
作って分かった「ROSを使う前のロボットと、ROSを使った後のロボットの変化」
目次: ROSを使った自動航行ロボットをつくるまでの道のり ー序章 概要ー
1章.ロボットのROS対応
2章.ロボットを操作する
前章 :3章.LiDARを動かす
##参考文献
・GR-ROSEでいこう!
・Learning URDF
・ROS講座13 URDFを記述する1
・ロボットをURDFで記述する
・ROSを使ったURDF作成