こんにちは。佐藤です。
Raspberry Pi Mouseと書くと思ったより文字数が多いですねー。
実はタイトルだけ前回からRasPiMouseと表記するように変更しました。
さて、前回はGazeboの使い方について紹介しました。
今回もチュートリアルとほぼ同様にしてGazebo上でロボットを呼び出します。
ついにRaspberry Pi Mouseを呼び出すときがやってきました!
Gazebo : Tutorial : Using roslaunch
Gazeboを起動する際のlaunchファイルを置くためのパッケージを作ります。
_descriptionパッケージとは別のパッケージに用意するのが慣例となっているようです。
../catkin_ws/src /MYROBOT_description package.xml CMakeLists.txt model.config /urdf MYROBOT.urdf /meshes mesh1.dae mesh2.dae ... /materials /plugins /cad /MYROBOT_gazebo /launch MYROBOT.launch /worlds MYROBOT.world /models world_object1.dae world_object2.stl world_object3.urdf /materials /plugins
Gazebo : Tutorial : Using roslaunch より引用
実際にいくつかのロボットのモデルについて調べてみたところ、概ねパッケージをいくつかに分割している場合が多いようです。
https://github.com/PR2/pr2_common
https://github.com/yujinrobot/kobuki
https://github.com/demulab/mini_sim
https://github.com/CIR-KIT/fourth_robot_pkg
今回はraspimouse_gazeboというパッケージを作り、所定のディレクトリを作成します。
$ cd ~/catkin_ws/src $ catkin_create_pkg raspimouse_gazebo $ mkdir launch worlds
ここでチュートリアルと同じようにガソリンスタンドの環境を用意してみます。今回はhello.worldとtest.launchで保存しました。
<?xml version="1.0" ?> <sdf version="1.4"> <world name="default"> <include> <uri>model://ground_plane</uri> </include> <include> <uri>model://sun</uri> </include> <include> <uri>model://gas_station</uri> <name>gas_station</name> <pose>-2.0 7.0 0 0 0 0</pose> </include> </world> </sdf>
<launch> <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find raspimouse_gazebo)/worlds/hello.world"/> <!-- more default parameters can be changed here --> </include> </launch>
この環境でGazeboを起動してみます。
$ roslaunch raspimouse_gazebo test.launch
多くの場合はガゾリンスタンドのモデルデータがないと思います。
起動すると真っ暗でなにも写っていないGazeboのウィンドウが出てきます。
Warning [ModelDatabase.cc:334] Getting models from[http://gazebosim.org/models/]. This may take a few seconds.
このメッセージが出ている間、ダウンロードしています。起動完了するまで数分かかることがあります。
ただのガソリンスタンドが出現しました。
では、ここにRaspberry Pi Mouseを呼び出してみたいと思います!そのコマンドがこちら!!
rosrun gazebo_ros spawn_model -file `rospack find raspimouse_description`/robots/raspimouse.urdf -urdf -x 0 -y 0 -z 1 -model raspimouse
実行すると…呼び出せました!
しかし、問題があります。よく見ると、ホイールがありません。
test.launchを起動した方のTerminalで次のようなエラーが出ていました。
[ERROR] [1470394144.109165858, 6.166000000]: inertia element must have ixx,ixy,ixz,iyy,iyz,izz attributes [ERROR] [1470394144.109234213, 6.166000000]: Could not parse inertial element for Link [base_link]
Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouseで慣性行列を定義しました。
RVizで表示するだけの場合は慣性モーメントだけで慣性相乗モーメントは定義しなくても何も問題ありませんでした(未定義の場合は0として扱う)が、Gazeboではきちんと定義する必要があるようです。
今回はその1ということでGazebo上で走らせる手前まで確認を行いました。
次回は慣性モーメントの簡単な算出方法を紹介したあと、コントローラを実装し、走らせてみたいと思います!
参考文献
- Gazebo : Tutorial : Using roslaunch
http://gazebosim.org/tutorials?tut=ros_roslaunch - Gazebo : Tutorial : ROS control
301 Moved Permanently - ROSを使用したCRANE+の動かし方 その1 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その1はじめまして!アールティでアルバイトをしております大学2年生の長谷川と申します。これから、何回かに分けまして、ROSを使用してTurtleBot2用ロボットアーム「CRANE+」を動かす方法について解説していきたいと思います。ROSを知らな - 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
ROSを使用したCRANE+の動かし方 その4こんにちは!長谷川です。前回はROSの環境のセットアップとROSのファイルシステムについて説明しましたが、今回はROSのパッケージの作成とビルドについて説明したいと思います。今回も前回同様、主に英語版Wikiのチュートリアルに従って進みます - 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
ROSを使用したCRANE+の動かし方 その8こんにちは!長谷川です。前回はROSのプログラムの書き方について説明しましたが、今回はCRANE+のURDFモデルの作り方について説明したいと思います。URDFモデルとはURDFとはUnified Robot Description For - ROSを使用したCRANE+の動かし方 その9 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その9こんにちは!長谷川です。前回はCRANE+のURDFモデルの作り方について説明しましたが、今回は、前回作ったモデルと実物のCRANE+の連動のさせ方について説明したいと思います。プログラムの作成まずは、モデルとCRANE+を連動させるプログ - ROSを使用したCRANE+の動かし方 その10 | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その10こんにちは!長谷川です。この連載も、ついに10回目に突入しました。ここまで見てくださった皆様、本当にありがとうございます!前回は、前々回作ったモデルと実物のCRANE+の連動のさせ方について説明しましたが、今回は、CRANE+の状態をモデル - ROSを使用したCRANE+の動かし方 その11(完結) | RT Robot Shop Blog
ROSを使用したCRANE+の動かし方 その11(完結)こんにちは!長谷川です。前回はCRANE+の状態をモデルに反映させる方法について説明しましたが、今回は、CRANE+の状態をrviz上でモニタリングしつつ、CRANE+を自動で動かす方法について説明したいと思います。使用するプログラム実は、 - 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
Gazebo + ROS で自分だけのロボットをつくる 4.URDFファイルをつくる - Qiitaはじめに今回は、手順4.についてです。完成までの手順好きなCADソフトを使ってSTLファイルを作る好きなソフトを使ってCOLLADAファイルを作るURDFファイルを作る ←今ココGaze… - Gazebo + ROS で自分だけのロボットをつくる 4. GazeboとROSの連携- Qiita
Gazebo + ROS で自分だけのロボットをつくる 5. GazeboとROSの連携 - Qiitaはじめに今回は、手順5.についてです。完成までの手順好きなCADソフトを使ってSTLファイルを作る好きなソフトを使ってCOLLADAファイルを作るURDFファイルを作るGazeboとRO… - Raspberry Pi MouseのURDFモデル作成 その1 | RT MicroMouse
Raspberry Pi MouseのURDFモデル作成 その1はじめまして。この夏、インターンシップでアールティのお仕事のお手伝いをしています佐藤です。 Raspberry Pi MouseのURDFモデルの作成をし、Gazeboでシミュレーションを行うところまで行っていきたいと思います。 ROSを使... - Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouse
Raspberry Pi MouseのURDFモデル作成 その2こんにちは!佐藤です。 今回は前回の続きでURDFのモデルの作成を行っていきます。 前回はとりあえず動かすことを目的としてパッケージを用意して、URDFを記述するところまで行いました。 URDFファイルについて はじめに記述したURDFファ... - Raspberry Pi MouseのROSコマンド確認 | RT MicroMouse
Raspberry Pi MouseのROSコマンド確認こんにちは!佐藤です。 アールティでブログを書くのにもだんだん慣れてきました。 前回はxacroファイルでモデルの形だけではなく重さなど詳細情報も含めて定義しました。 これから先は実際に動かす方法を踏まえつつ各種ファイルを用意していく必要が... - GazeboでRasPiMouseのチュートリアル | RT MicroMouse
GazeboでRasPiMouseのチュートリアルこんにちは!佐藤です。 前回はRaspberry Pi MouseをROSを使って動かすためのコマンドを確認しました。 Raspberry Pi Mouseから少し話がそれてしまいますが、今回はGazeboでURDFを使う方法をGazebo...