UdacityでArtificial Intelligence for Robotics(CS373)を受けた。

しかしながら、この講座はとても難しく、挫折した。

なので、簡単に内容の紹介と感想を書く。

動機

Udacityの Deep Learning Nanodegree を受講し終わったので、

次の講座として Robotics Nanodegreeの受講を考えている。

その間のつなぎの講座として、タイトル惹かれてこの講座を受けてみることにした。

また、最近 LEGO mindstormsを購入したので、学んだことを応用できればいいなと思っている。

内容

Googleの自動運転車の要素技術について学ぶ講座。この要素技術は、自動運転車に限らずあらゆるロボティクスについて応用できるとのこと。講座のタイトルが昔は Self Driving Car だったが今の AI for Roboticsに変わったようだ。

講師は、Udacityの創立者にしてGoogleカーのエンジニア、セバスチャン・スラン氏。すごい。

シラバスは以下のとおり。

Lesson1-3は自己位置推定(Localization)について、4,5は探索と制御について、6は地図生成だ。

  • Lesson 1: The Problem of Localization ・・・ヒストグラムフィルタについて学ぶ
  • Lesson 2: Kalman Filters ・・・ カルマンフィルタについて学ぶ
  • Lesson 3: Particle Filters ・・・粒子フィルタについて学ぶ
  • Lesson 4: Motion Planning ・・・経路探索について、幅優先探索、A*, 動的計画法について。
  • Lesson 5: PID Control ・・・経路の平滑化、PID制御について学ぶ。
  • Lesson 6: GraphSLAM ・・・ Lesson1-5まで学んだまとめ、おまけとしてGraphSLAMについて。

途中、よくわからなくなったので、参考書を買った。確率ロボティクス。スラン先生の本だ。

講座の進め方は、ミニクイズとPythonによるプログラミング課題が、説明のあとに出される。少しずつ難易度が上がっていくので、理解しやすい。そして、週の終わりにミニテストとプログラミング課題が出される。一応リポジトリを起こして、コードを書いた。

この講座、一番うれしいところは、すべての動画に日本語字幕がついているところだ。

その他、Forumが充実しているところもうれしい。が、講座が開講された2012年のころの投稿が多い。

感想

難しく、挫折した。一応、動画は最後まで目を通した。これが完全に理解できれば、君はスタンフォードの優等生だと講義でいっていた。むりだー。

少し飛ばしぎみで講義を進めていったので、深くは理解を深めようとしていないからかもしれない。

大体ひとLesson 5時間くらいかければ終わる。

無料の講座だとついつい気が緩んで真剣にとりくまないのかもしれない。

この講座は、今の Self-Driving Car NanoDegreeに内容が引き継がれているようだ。

DeepLearning Nanodegreeのあとの進路は、Self-Driving Car, Artificial Intelligence, Roboticsの3つに分かれるのだが、自分は 組込み屋なので、Roboticsに決めている。ただ、自動運転車の講座もおもしろそうだと思った、と同時に難しそうだと思った。自分には、Roboticsを挫折しないでやり遂げる能力があるのだろうか・・・。

挫折したことが悔しいし、確率ロボティクスの本も買ったことなので、いつかこの講座をやり直そう。ロボティクスでも、自己位置推定が扱われるようなので、そのときに振り返ることにする。

Path Planningや PID制御は LEGO Mindstormsで実際に試せそうだ。時間があればやってみよう。