まっすぐ走らない?
ロボット作ろう:シェーキー製作記
組み込んだコマンドインタプリタを利用してオドメトリの校正作業を楽しんでいます。写真のようなゾンビ状態ですが。
移動系のコマンドは、元祖Shakey先輩に倣って下記のようになっています。
ROLL 距離(cm) 浮動小数点。プラスで前進、マイナスで後退
TURN 角度(degree) 浮動小数点。プラスで反時計回り、マイナスで時計回り
ROLLTO X座標 Y座標(cm)
TURNTO X座標 Y座標(cm)
TOのついているコマンドは、マップ座標系の特定の位置へ直線移動したり、その座標位置に向かって旋回したりするモノです。
校正作業は、コマンドのパラメータと実際の運動量を比較して、STM32F4に実装したオドメトリの係数を調整する訳ですが、どうもうまくいきません。改めてロボットの運動を観察すると直進でぐぐっと左に曲がってしまうことに気がつきました。1mほどの直進中、次第に左に曲がってゆき停止時には5度以上も左を向いています。しかもオドメトリではまっすぐ進んだことになっています。なんと! ベースだけでテストしていたときにはこんなことはなかったのに! これではだめですね。
本機の直進補正はこの投稿で書いたように、左右の駆動輪のトリップメーターを比較して、先へ行ってる方のモーターのPWMパルスを0にする、つまり瞬間的にパワーを切るという方法で行っています。単純ですが効果的な方法です。
駆動輪のインタラプタを二相に変更したばかりなので、もういちど波形観測やドライブサーバのソフトの確認をしてみましたが、これといって問題は見当たりません。
次に内部シリアルバスに直接パソコンからアクセスして左右トリップカウンタの値を連続的に読み出してみましたが、走行中常に両者の差は±1カウント以内です。
次に馬を入れて駆動輪を浮かせ、ホイールに黒いビニールテープでマークをつけて、停止位置がずれるかどうかを確認しました。これもOK、左右とも同じ位置で停止します。
となると、タイヤと路面のスリップが疑わしくなりますが、路面はフローリングの床でグリップはよく、駆動輪のタイヤがこれほど滑るとも思えません。
ではホイールに対してタイヤが滑っているのでしょうか? そこで、ホイールとタイヤにこの写真のようにビニールテープの切れ端で印を付け、走行実験をしてみました。
銀色の駆動輪下部の四角いマークがホイールのマーク、ちょっと見にくいですが、テープを長方形に切ったものを踏ませる形でタイヤに張り付け、これをタイヤ側のマークとしています。これを1m走行させた結果がこれです。
ご覧の通り、タイヤとホイールのマークがずれています。タイヤがおいていかれる形ですがら、当然左側の回転数が足りなくなり、車体は左を向いてしまいます。ここで滑っていたのですね。観察するとどこかでがくんとずれるのではなく、走行中次第にずれてゆくこともわかりました。そこで、タイヤとホイールの間に瞬間接着剤を流し込んで固定しました。
本機の駆動輪はアルミプーリーにOリングのタイヤをはめています。はめ込んだだけですが結構しっかりはまっていて、手でタイヤだけをまわそうとしても回るものではありません。まあこれで大丈夫だろうとタカをくくっていたのですが、重量が増えてくるとこれが回ってしまうのですね。大きなものはいろいろと大変です。
接着後は大きな問題もなく、なかなかの精度で動いています。
« TrueSTUDIO Liteの旧バージョン | トップページ | CS-W07G-CY生産中止? »
「ロボット作ろう」カテゴリの記事
- Raspberry Pi3でturtlebotを動かしたいのだけど(2016.06.11)
- STM32F4のAD変換トラブル(その2)(2013.03.29)
- TrueSTUDIOからEclipseへ乗り換える(拾遺)(2012.07.14)
- TrueSTUDIOからEclipseへ乗り換える(その3)(2012.07.13)
- TrueSTUDIOからEclipseへ乗り換える(その2)(2012.07.07)
コメント