2023年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

カテゴリー

ブログパーツ

無料ブログはココログ

« ジャイロコンパス+測距輪でのナビゲーション(4) | トップページ | ジャイロコンパス+測距輪でのナビゲーション(6) »

2014年5月11日 (日)

ジャイロコンパス+測距輪でのナビゲーション(5)

ROSさんお手やわらかに/花岡ちゃんのウィークエンド

まずは回路図ですが、今回は作成していません。公開するPICのソースコードの最初の部分にポート割当がありますので、それを参照してください。PIC周りの回路はこのシリーズの投稿を参照願います。

ジャイロの接続はこの投稿を見てください。

使用している液晶は秋月の小型i2cタイプです。他のモノを使うにはコードを修正する必要があります。今回はこちらの変換基板がついたものを使いました。プルアップ抵抗が内蔵されているので便利です。

モータードライバは一般的なものでOKです。パワー制御はソフトでやっているので、ドライバにPWMの機能は必要ありません。小型モーターならTB6612FNGを使ったこのボードがお勧めです。PWMはHレベルに固定して使います。

ソフトウェアはおなじみMPLAB XとXC16で開発しました。

「odometry.X.zip」をダウンロード

main.cに全てが記述してあります。ソフトを起動するとクレジットを表示した後、"PUSH START"を表示して待機します。このとき、LEDは1秒周期で点滅します。ボタンを押すと"INIT GYRO"としばらく表示します。ジャイロに初期化コマンドを送っているので、ロボットを動かさないようにしてください。その後、この投稿にあるように、1m四方の正方形を描いて走行します。走行中は、液晶にX座標(上側)Y座標(下側)を表示します。停止後、10秒すると再度"PUSH START"が表示されます。

使用する前に55行目からの「身体性パラメータ」を自作のロボットボディに合わせて設定する必要があります。

測距輪やジャイロ、モーターのテストのためのテストプログラムも入っています。1229行から、テストプログラムの使用法が記載されているので、参照してください。

プログラムは単純です。navigation(double x,double y)に目標地点のx,y座標を与えると、その位置へ直線移動します。目標地点との距離が3cm以下になると、モーターブレーキをかけてリターンします。座標系は一つ前の投稿を参照してください。

ロボットの初期位置はRposX,RposYにセットします。デモプログラムでは初期位置を0,0にしています。(1219,1220行)、同様にアタマの向いている方位(ヘッディング)はinit_Gcompass(double val)に与えてジャイロを初期化します。デモでは0(Y軸方向)に初期化しています。(1224行)

次回は実験を総括します。

« ジャイロコンパス+測距輪でのナビゲーション(4) | トップページ | ジャイロコンパス+測距輪でのナビゲーション(6) »

花岡ちゃんのウィークエンド」カテゴリの記事

ROSさんお手やわらかに」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: ジャイロコンパス+測距輪でのナビゲーション(5):

« ジャイロコンパス+測距輪でのナビゲーション(4) | トップページ | ジャイロコンパス+測距輪でのナビゲーション(6) »