*

C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

公開日: : C言語, マインドストーム/EV3, 開発

(テーマ)
C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

(下書き)
どもです。
今回は、Ev3の移動距離の算出についてです。

1.算出方法について
移動距離は、積分により算出します。
即ち、規定時間内での変化量から、その間での移動距離を算出、その値の積算値を移動距離とします。
具体的な計算の順番は、以下の通りです。

(1).各時間ごとのモーターの角度を算出する。
(2).各時間内でのモーターの角度の変化量を算出する。
(3).角度の変化量に対するタイヤの円周を算出する。
(4).算出した円周を積算する。

2.算出方法の実装
上記計算の実装は、下記の通りです。

上記実装では、calc_distance()で角変化量から、対応するタイヤの円周を算出しています。
円周を計算しているのが、

の部分です。
この式は、「2 x π x R x (θ / 360) = π x R x (θ / 180)」です。
この「θ」の部分が、変化量となっています。
また、円周の算出の際に使用するパラメータですが、具体的な値と精度(LSB)は下記のように設定しています。

なお、モーターの角度については、EV3RTのAPIを用いて取得しています。
具体的な実装を、下記に示します。

この設定値から、calc_distance()で算出される円周の精度は0.01(mm)と、少し高精度の値となります。
その後、少し精度を下げて移動方向を考慮した値と、移動方向を考慮していない値を算出しています。

3.実行/実測結果
上記の実装を用いた測定の結果のグラフを、以下に示します。
移動距離の測定結果

グラフを見ると、移動距離の測定値は、おおよそ170cm(1700mm)となっています。
では、実際の様子を動画で録画したので、見てみましょう。

えー、こちらでもおおよそ171~2cm(1710~20mm)となっており、上記の測定結果と一致しています。
これにより、Ev3の移動距離が算出できていることが確認できました。

まとめ
以上、今回のエントリでは、モータの回転角度とEV3に同梱されているタイヤのサイズから移動距離を算出する方法を記載してみました。
また、その方法で算出される移動距離が、実際の測定距離と一致していることを確認しました。
コレにより、積分を用いて測定された移動距離が、実際の値と一致することが証明できました。

以上!
ではっ!!

関連記事

no image

C言語でEV3開発(7)

どもです。 今回のエントリーでは、いよいよEV3を動かしていきます。 新しい環境に対して、最もよ

記事を読む

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

toppers

C言語でEV3開発(24)-APIの実行時間を測定してみた。

どもです。 今回、以前から気になっていた、開発環境/プラットフォームであるTOPPERS HRP2

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

no image

C言語でEV3開発(14)-opOUTPUT_TIME_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである「opOUTPUT_TIME_SPE

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

どもです。 今回のエントリーでは、再びモーターを動かすためのコマンドについて書きます。 コマンド

記事を読む

no image

C言語でEV3開発(12)-opOUTPUT_TIME_POWERコマンド

どもです。 今回のエントリーでは、これまた前回に引き続き、モーターを動かすためのコマンドについて書

記事を読む

raspberry-pi

RaspberryPiで物体検出(2)-白線検出への挑戦(2):輪郭検出による白線検出(実機編)

どもです。 今回は、前回に引き続きOpenCvを用いて道路の白線検出について、です。 1.今

記事を読む

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

raspberry-pi
RaspberryPiで物体検出(2)-白線検出への挑戦(2):輪郭検出による白線検出(実機編)

どもです。 今回は、前回に引き続きOpenCvを用いて道路の白線検出

OpenCvLogo
RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です

OpenCvLogo
OpenCvによる画像サイズ変更

どもです。 最近、カメラの動画をOpenCvで加工する、というこ

eclipse_oxygen
苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用

eclipse_oxygen
Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryP

→もっと見る

PAGE TOP ↑