Gazeboで走るRasPiMouse その3

こんにちは。佐藤です。

前回はGazeboでRasPiMouseが動かせることを確認しました。

概要

今回は見た目を少し改良し、まっすぐに走ることができるようにします。

見た目の改良

前回まではこのように真っ白でした。
Screenshot from 2016-08-15 19:10:56

これをこのように色を付けて実物にもう少し近づけてみます。
Screenshot from 2016-08-16 17:31:26

簡単にできる方法はいくつかあります。

今回はstlを用意する時点で色ごとに分割して出力し、Colladaファイルへ変換する際に色をつけます。
変換方法についてはこちらをご覧ください。
Raspberry Pi MouseのURDFモデル作成 その1 | RT MicroMouse
http://products.rt-net.jp/micromouse/archives/3168

このようにいくつかのパーツに分けて色を付けたあと、
Screenshot from 2016-08-16 17:42:19

最後にまとめてColladaファイルとしてエクスポートします。
Screenshot from 2016-08-16 17:42:38

このデータをxacroあるいはurdfで指定することで色付きのモデルができます。

ホイールの回転方向修正

前回はx軸方向へ進むコマンドを送信してもその場で旋回してしまっていました。

20160815_3

回転軸が逆なようです。
今回のモデルで軸を定義しているのではraspimouse_descriptionの中にあるrobots/raspimouse.urdf.xacroとurdf/wheel/wheel.urdf.xacroです。
これらを編集します。

編集箇所は以下のとおりです。右回りに回転するはずです。
軸の原点をロール角を+90度回転させた方の回転軸を逆向きにしました。

ちなみに、前回も紹介しましたがwheelというマクロは次のように定義されています。

このように回転軸の向きを統一することによってロボットをまっすぐ進めることができるようになりました。
20160816_2

次回はセンサと走らせるためのコマンドについて触れていきます。

補足
重心位置について

前回はInventorで慣性行列を計算し、URDFの定義に書き加えました。
重心はホイールの回転軸上ではなく、若干後ろ側に寄っています。
また、ホイールの回転軸が固定されておらず、フリーになっています。
そのため、ボディが後ろに回転しようとし、床と触れた結果ホイールが回転して前に少しずつ進んでしまうという状態です。
(早送りにしています。)
20160816_1

ボディの摩擦係数を変えてみたり、回転軸の摩擦を変えてみたりしましたが、どれもうまく行きませんでした。
ボディの摩擦係数を変えると、回転し始める際にかなり揺れます。
滑らないほど回転軸の摩擦を大きくするとcmd_vel geometry_msgs/Twistを送った際にホイールが外れてしまいました。
そこで、微少量後退するコマンドを周期的に送ったところ、全くと言っていいほど動かなくなりました。

今のところdiff_drive_controllerを使用していますが、実際のRasPiMouseとはコマンドが異なるのでros_control側で軸を固定することができるようにする必要がありそうです。

tk-WARNINGについて

と言われることがあります。
gtk2-engines-pixbufが足りていないので、以下のコマンドでインストールできます。

参考文献

続きを読む Gazeboで走るRasPiMouse その3