はじめまして。この夏、インターンシップでアールティのお仕事のお手伝いをしています佐藤です。
Raspberry Pi MouseのURDFモデルの作成をし、Gazeboでシミュレーションを行うところまで行っていきたいと思います。
ROSを使うことのメリットや具体的な初期設定方法は過去に長谷川さんがRT ROBOT SHOPの方にエントリを書いていますのでそちらをご覧ください!
ROSを使用したCRANE+の動かし方 その1 | RT Robot Shop Blog
URDFモデルについての説明はこちらをご覧ください!
ROSを使用したCRANE+の動かし方 その8 | RT Robot Shop Blog
Gazeboはロボットのシミュレータです。詳しくは実際に使用する際にまた詳しく説明をしたいと思います。
http://gazebosim.org/tutorials?tut=ros_overview
今日は初日ということで、モデルを作成します。
概要
バラバラに作ったパーツが組み上がり、ホイールを回転させるところまで行います。
- STLデータの作成
- Colladaファイルへの変換
- URDFモデルの作成
開発環境
STLデータの作成
PC:dynabook R73/W4M
OS:Windows10 64bit
使用ソフトウェア:Autodesk Inventor 2016
URDFモデルの作成
PC:dynabook R73/W4M
OS:GNU/Linux Ubuntu14.04
使用ソフトウェア:Blender 2.71、ROS Indigo
STLデータの作成
公開されているRasPiMouse.stpはすべてのパーツを組み立てた状態なので、ホイールとボディに分割します。
分割したあと、それぞれをSTLファイルとして保存するのですが、ここで注意しなければならないことがあります。
通常はミリメートル基準で設計していることが多いと思います。しかし、URDFではメートル基準で大きさが定義されているのでメートルに変換してから出力しておきます。
(シミュレータで読み込む際に倍率を変換する方法も有効ですが、今回は予め変換しておきます。)
編集した際にはホイールを駆動する軸の位置が原点から見てどの位置にあるのかも測定しておくと、あとで楽です。
Colladaファイルへの変換
ここからの作業はUbuntuで行います。
この工程は以下のサイトを参考に行いました。
Gazebo + ROS で自分だけのロボットをつくる 3.URDFファイルをつくる- Qiita
Blenderを起動し、File -> Import -> Stlを選び、先ほど出力したSTLファイルを開きます。
本来ならばここでテクスチャを編集するのですが、今日はファイルの変換のみ行います。
File -> Export -> Colladaを選び、保存します。
URDFモデルの作成
以下のようにしてワークスペース内の新しいディレクトリの中に新しいパッケージを作成します。
パッケージの作成についての詳細はこちらをご覧ください。
ROSを使用したCRANE+の動かし方 その4 | RT Robot Shop Blog
mkdir ~/catkin_ws/src/raspimouse_sim cd ~/catkin_ws/src/raspimouse_sim catkin_create_pkg raspimouse_description (cd ${HOME}/catkin_ws && catkin_make) && source ${HOME}/catkin_ws/devel/setup.bash roscd raspimouse_description mkdir meshes urdf
ここで作成したmeshesディレクトリの中に先ほど出力したCollada形式のデータをコピーします。
urdfディレクトリの中にはモデルを記述します。今回は以下のようになりました。
(2016年8月3日追記 : urdfファイルの中身を書き換えたため内容を変更しました。詳細はこちらをご覧ください。
Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouse
<robot name="raspimouse"> <link name="base_footprint"/> <joint name="base_joint" type="fixed"> <origin xyz="0 0 0.00185"/> <parent link="base_footprint"/> <child link="base_body"/> </joint> <link name="base_body"> <visual> <geometry> <mesh filename="package://raspimouse_description/meshes/dae/base/RasPiMouse_base.dae"/> </geometry> </visual> </link> <joint name="left-wheel_joint" type="continuous"> <origin xyz="0 0.0425 0.02215" rpy="-1.57 0 0"/> <axis xyz="0 0 1"/> <parent link="base_body"/> <child link="left-wheel"/> </joint> <link name="left-wheel"> <visual> <geometry> <mesh filename="package://raspimouse_description/meshes/dae/wheel/RasPiMouse_wheel.dae"/> </geometry> </visual> </link> <joint name="right-wheel_joint" type="continuous"> <origin xyz="0 -0.0425 0.02215" rpy="1.57 0 0"/> <axis xyz="0 0 1"/> <parent link="base_body"/> <child link="right-wheel"/> </joint> <link name="right-wheel"> <visual> <geometry> <mesh filename="package://raspimouse_description/meshes/dae/wheel/RasPiMouse_wheel.dae"/> </geometry> </visual> </link> </robot>
これをraspimouse.urdfとして保存したあと次のコマンドでlaunchします
roslaunch urdf_tutorial display.launch model:='$(find raspimouse_description)/urdf/raspimouse.urdf' gui:=True
すると、バラバラに作成していたパーツが今にも動き出しそうなRaspberry Pi Mouseの形に組み上がりました。
次回はこのモデルを改良し、Gazeboでシミュレーションをするための準備を行いたいと思います。
参考文献
- ROSを使用したCRANE+の動かし方 その1 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6419 - ROSを使用したCRANE+の動かし方 その2 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その2こんにちは!長谷川です。前回はROSそのものについての解説をしましたが、今回はROSを実際にインストールしてみましょう。長くなると思いますが、環境が整わないとCRANE+を動かすこともできないので、ご辛抱ください。使用PCの環境この連載で使 - ROSを使用したCRANE+の動かし方 その3 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その3こんにちは!長谷川です。前回はROSのインストールについて説明しましたが、今回はROSの環境のセットアップとROSのファイルシステムについて説明したいと思います。今回は、主に英語版Wikiのチュートリアルに従って進みます。日本語版Wikiの - ROSを使用したCRANE+の動かし方 その4 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6594 - ROSを使用したCRANE+の動かし方 その5 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その5こんにちは!長谷川です。前回はROSのパッケージの作成とビルドについて説明しましたが、今回はCRANE+を動かすための環境の構築について説明したいと思います。CRANE+を動かすためのチュートリアルここを見ていただくとわかりますが、「CRA - ROSを使用したCRANE+の動かし方 その6 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その6こんにちは!長谷川です。前回はCRANE+を動かすための環境の構築について説明しましたが、今回はCRANE+の全ての関節を同時に、かつ自動で動かす方法について説明したいと思います。ROSのノードとトピックについてCRANE+を動かす前に、R - ROSを使用したCRANE+の動かし方 その7 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その7こんにちは!長谷川です。前回はCRANE+の全ての関節を同時に、かつ自動で動かす方法について説明しましたが、今回はその時出てきたソースコードの解説を通して、ROSのプログラムの書き方について説明したいと思います。プログラムについてのチュート - ROSを使用したCRANE+の動かし方 その8 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6711 - Gazebo + ROS で自分だけのロボットをつくる 1.STLファイルをつくる- Qiita
Gazebo + ROS で自分だけのロボットをつくる 2.STLファイルをつくる - Qiitaはじめに今回は、手順2.についてです。完成までの手順好きなCADソフトを使ってSTLファイルを作る ←今ココ好きなソフトを使ってCOLLADAファイルを作るURDFファイルを作るGaze… - Gazebo + ROS で自分だけのロボットをつくる 2.好きなソフトを使ってCOLLADAファイルを作る- Qiita
Gazebo + ROS で自分だけのロボットをつくる 3.COLLADAファイルをつくる - Qiitaはじめに今回は、手順3.についてです。完成までの手順好きなCADソフトを使ってSTLファイルを作る好きなソフトを使ってCOLLADAファイルを作る ←今ココURDFファイルを作るGaze… - Gazebo + ROS で自分だけのロボットをつくる 3.URDFファイルをつくる- Qiita
http://qiita.com/RyodoTanaka/items/174e82f06b10f9885265