*

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

公開日: : 最終更新日:2018/02/05 C言語, マインドストーム/EV3, 開発

どもです。
今回の内容は、「失敗しました」という内容です。

最近、流行になっている深層学習/強化学習のお勉強を始めました。
で。
やっぱりお勉強したら、実践したくなるのが人間の性です。
(ただし、エンジニアに限る…かも?)

1.やってみようとした内容
EV3本体での強化学習/Q-Learningを実装、実施してみようとしました。
入力としては、

・モーターの出力値(出力目標) x2
・超音波センサーの距離値

を選択しました。
これらのセンサー入力値を元に、自動で衝突回避を学習するようなシステムの実装を行ってみました。

2.やってみた結果
上記内容を実装、実機で動作させようとしたのですが、アプリケーションをロードすると

「Failed to load application」

と、液晶に表示されてしまいました。
次に、「EV3RT Console」でのログ内容を確認すると、

と表示されていました。
最後のercdを調べてみると、「t_stddef.h」において

と定義されています。
…えー…、単にメモリ不足ということ?
作ったアプリが使用するメモリを確保できない、ということ?
…だそうです。

3.原因は?
ざっくり調べてみました。
今回作成したアプリケーションでは、Q-Learningの値を保持するために、大量のメモリを必要としています。
具体的なメモリ量は、「32936220バイト」つまり「約32MB」になります。
そのため、この領域がメモリを圧迫していることが分かります。

以上、Q値を格納するための領域が、「Fail」の原因であることが判明しました。

4.対策は
…さて、どうしよう。
対策の検討と実装は、次回に。

ではっ!

2018/02/05 追記
うまくいかなかった例ですが、一応GitHubにソースコードを上げてみました。
EV3上で動作しないので、PC上で動作するバイナリファイルを作成、一緒にコミットしています。
なお、cygwin上でビルド、動作するようになっています。

関連記事

MY_MFC_LOGO

MFCプログラミング(2):コピー機能の実装

どもです。 前回に引き続き、今回もMFCネタです。 内容は、MFCでの「クリップボードへのデータ

記事を読む

c_sharp_eye_catch

Windowsでのカバレッジ測定-OpenCoverageを使ってみた

どもです。 以前、OpenCppCoverageを使用してWindows上でカバレッジ測定する方法

記事を読む

GitHub

Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(1)

どもです。 ここ最近、Windows上で開発を行っています。 その際に、当然単体テストを行うので

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(8):pigpioを使用したチャタリング対策の問題の対策

どもです。 だいぶ、間が空いてしまいました。 久しぶりの更新です。 前回のエントリーで、「

記事を読む

c_sharp_eye_catch

外部からMariaDbにアクセスする(1)-データベースの設定

どもです。 今回は、Linux上のMariaDbにWindowsからアクセスしてデータを取得で

記事を読む

think_about_utest

単体テストの効率化を考える(2)-スタブの戻り値

どもです。 「単体テストの効率化について考える」の2回目です。 (1回目はコチラ:単体テスト

記事を読む

iot_at_home_eye_catch

IoT開発(14)
ESP-WROOM-02の稼働時間を延ばす工夫をしてみる

どもです。この記事は、以下の続きです。 IoT開発(4)-ESP-WROOM-02を電池で駆動

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

どもです。 今回のエントリーの内容は、前回まででセットアップした環境で、実際にEV3上で動く実行フ

記事を読む

iot_at_home_eye_catch

IoT開発(2)-ESP-WROOM-02で気温測定

どもです。 この記事は、IoT開発(1)-ESP-WROOM-02のセットアップからの続きです

記事を読む

RasPi_Qt

QtでRaspberryPi/GUI開発(12)-gpioの状態をGUIに反映する

どもです。 今回は、gpioピンの状態(HIGH/LOW)の変化を画面上に即座に反映する方法につい

記事を読む

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="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑