タグ

DQNとetロボコンに関するtsu-neraのブックマーク (4)

  • ライントレーサーをDeep Q Learningで教育する - Chainer - Qiita

    みなさん ライントレーサーってご存知ですか? メカトロの入門として遊んだ方もいくらかいるのではないでしょうか。 今回はChainerでやってみるDeep Q Learning - 立ち上げ編 に引き続き、 基礎体力づくりとしてライントレーサーにDQNで校庭を走らせることにしました。 GitHubにも置きました。良いパラメータやモデル、アルゴリズムなど見つけたら教えてください。 GitHub : DeepQNetworkTest/DQN003.py プログラムの雰囲気 ライントレーサーは前記Youtubeのロボと同様に光センサ1個の情報で動きます。 走行はmobile robot風に左輪と右輪の速度差などで向きを変えたり前進したりする仕様。慣性はない。 線の太さはグラフィックとして書かれている1pxを中心に幅10pxです。 緑色 そっけないルールベース ライントレーサー # 線が見えていると

    ライントレーサーをDeep Q Learningで教育する - Chainer - Qiita
  • 倒立振子で学ぶ DQN (Deep Q Network) - Qiita

    強化学習の一手法であるQ-learning とディープニューラルネットを組み合わせた Deep Q Network、通称DQNを使って倒立振子の振り上げ問題を解決してみます。 問題設定 「倒立振子の振り上げ問題」というのは、今回はこういう問題設定です。 まず空中に静止したモータがあって、モータ軸に棒の一端がつながっています。棒は中心に質量が集中していて剛性$\infty$で太さ0の、よくある棒です。初期状態では棒は重力にしたがって下向きにぶら下がっています。この状態から振り子を振り上げて倒立状態で静止させてください、という問題です。古きよき制御工学では、振り上げ用と静止用に別設計されたコントローラを2つ用意して切り替えるなど、非線形要素を含むコントローラを用いて対処することになります。いや、やったことないですけど、そうらしいです。 今回は、モータは右か左に一定トルクの回転しかできない、とし

    倒立振子で学ぶ DQN (Deep Q Network) - Qiita
  • ライントレーサーの環境をOpenAI I/F的にした - Qiita

    ライントレーサーをDeep Q Learningで教育する - Chainer - Qiitaで取り扱った環境をOpenAI gymライクに扱えるように環境とAIを分離・整備しました。分離したといっても、renderのところを当初wxPythonと描画・ロジック一体で作りこんでしまったので、おかしな状態になっていますが、動くので良しという段階です。 この単眼ライントレーサはPOMDPの例ともいえますが、(最初にコース上に乗せる前提で)ロジックベースで動かしてみている人は少なからずいると思います。 POMDPってなんぞというかたは、@okdshinさんが最近親切な説明を書かれていたので、参考にするといいと思います。 ⇒ 外部メモリ(External Memory)を利用した強化学習 - Qiita 先述の以前のチャレンジでは、過去4ステップ分のステートを状態としてDQNにくれてやっていました

    ライントレーサーの環境をOpenAI I/F的にした - Qiita
  • ライントレーサーをChainerRLで実装 - Qiita

    黒いラインを追従して進む移動ロボットのシミュレーション(ライントレーサー)をChainerRL(DQN)を用いて実装しました。 学習結果を可視化したものが以下になります。 こんな感じで、エージェント(緑色の玉)が黒い線を追従しているのがわかると思います。 カクカクと動いている青い線はエージェントの進もうとしている方法(速度)を表しています。 コードはこちらにてアップしてあります。 https://github.com/slowsingle/LineTrace 描画はすべてcv2モジュールを使っています。画像処理じゃなくて画像描画のためにcv2をメインで使うのは久しぶりというか、あまり見ないような気がします。 当はPyQtとかwxPythonを使うのが正攻法かもしれません。(ま、今回はcv2だけで事足りる程度のタスクだっただけです) エージェントの設計 def update(self, a

    ライントレーサーをChainerRLで実装 - Qiita
  • 1