講義振り返り (2022-2023)

less than 1 minute read

Period:

昨年度 (2022.9 - 2023.8)に受講した講義の簡単な内容や感想です。(トプ画はAA277の課題で実装した群制御アルゴリズムより)

背景

去年度は

  • 5月にQualification Examを通過(気が向いたらいつか記事にしようと思います)
  • 1月 (ION ITM)、3月 (IEEE Aerospace)、9月 (ION GNSS+)と3つの学会に参加
  • 7つの論文と2つのプロポーザルを執筆
  • 3人の後輩学生をメンター
  • プライベートでは8月に結婚(!)

という大忙しの一年でした。お察しの通り、ブログを書いてる精神的な余裕もあまりなく、どうせ見ている人なんてそんなにいないだろうと更新を怠っていました。ですが、ブログを読みましたと連絡をして下さる方も多く、意外と私の駄文を読んでくださる方がいるようで驚きました(ありがとうございます)。論文執筆がひと段落したこともあり、誰かの参考になるかもとの思いで今更ながら昨年度履修した講義のまとめを投稿したいと思います。

またスタンフォードでの研究内容も、近いうちに投稿しようと思います。

秋学期(1) AA242A: Classical Dynamics

古典力学に関する講義です。ベクトルや座標変換などの基本からはじめて、各種保存則、ラグランジアンなど解析力学の触りをやったあと、剛体をやって終わりです。内容自体は東大航空の学部の力学演習の講義で習ったことの復習だったのですが、学科の必修となっていたため履修しました。毎週の課題(TAアシストなしで全部自力でやろうとすると毎週10時間以上はザラにかかる)、試験ともに複雑で重い問題が多かったのですが、無事Aを取れました。

秋学期(2) ENGR 205 Introduction to Control Design Techniques

古典制御に関する講義です。同様に学科指定の必修講義でした。ボード線図 (Bode plot) やナイキスト線図 (Nyquist plot)、根軌跡 (Root Locus)など、学部で習った内容はもちろん、デジタル制御などもうすこし発展的な内容も扱いました。Rock教授というベテランの教授が教えている講義で、講義も試験もなかなか癖がありました。宿題ではボード線図やナイキスト線図を書いたり、(マニュアルに従って)位相遅れ補償や位相進み補償を行う問題が多かったのですが、試験ではMATLABが使えないので、逆に与えられたボード線図などからシステムやCompensatorを類推したり、根軌跡図を使って幾何計算からたくみに補償機のゲインや位相を計算したりするトリッキーな問題が多く、爆死した学生多数。私は無事Aを取れましたが、学生からは、ただ地頭の良さを図るためのパズルなのでは?と不評でした… もはや講義ではなく、このYoutube Channelを見て独自に勉強した人も多いとか…

冬学期(1) AA272 Global Positioning Systems 

指導教員が教えているGPSの講義です。指導教員が教えている手前欠席できないが、一限だったのが辛かった… GPSの研究をしているので、正直復習となる部分も多かったのですが、GPS受信機の中のトラッキングループのアルゴリズムなどはちゃんと勉強したことがなかったので、新たな学びとなる部分も多くありました。Stanfordは伝統的にGPSの研究をリードしてきた大学なので(そもそもGPSのコンポーネントの多くがStanfordの研究室から生まれた)、GPSについてStanfordで学べたことは貴重な経験でした。期末ブロジェクトは自分の研究を流用して(大学院の講義では常套手段です)、なぜかA+でした。最終課題を発展させたものを論文化してION GNSS+ 2023で発表しました

冬学期(2) AA277 Multi-Robot Control and Distributed Optimization

Schwager教授が教える複数機のロボットがどのように協調的にナビゲーションや意思決定、制御、ナビゲーションを行うかについての授業です。分散推定の基本となるLinear Consensus ProtocolADMMを用いた分散最適化、Voronoi Cell を用いた複数ロボットによるCoverage問題について扱います。数式が多く、毎週の課題もヘビーなものが多かったですが、将来複数機の協調ナビゲーションの研究を計画している私にとってはとても得ることの多い講義でした。

最終課題ではロボティクスの研究をしている同期と、複数機のロボットを使って2次元Grid Worldで、エントロピーを最小化するように探索計画を立てながら、協調的にMap Segmentationを行うアルゴリズムを開発しました。論文化したいねーなんて同期と話していて教授にも相談に行ったのですが、時代の最先端は3Dで学会に通すにはまだ改良が必要そうなのと、お互い忙しすぎて話は立ち消えに…ここら辺の協調探索やナビゲーションの話は面白そうなのでいつかまた戻ってきたいですね。

3つのロボットを用いた2次元グリッド空間での協調的なMap Segmentation. 推定された確率分布のエントロピーを減らす方向に移動しつつ、通信が確保できた際に推定値をやりとりしてMapのConsensusを取っていく

春学期(1): AA279D: Dynamics, Navigation, and Control of Distributed Space Systems

最初の二学期私の指導教員であったD’Amico教授による、複数の宇宙機を協調させて動作させるために必要な、航法誘導制御のアルゴリズムについて学習する講義です。ペアを組んである宇宙ミッション(自分達は火星周回でFormation FlightをしながらAntenna Arrayを作るミッションを設定しました)を学期のはじめに設定して、毎週講義で習ったことに基づいてミッションの対応する要素を検討してレポートにまとめ、積み上がっていく形で最終的にミッション提案としてまとめるといったスタイルでした (例: 2週目はダイナミクス, 3週目は制御、など)。この毎週出される課題がとても重く、20時間くらい溶けていくため、春学期は他の学期や研究に回せる時間が少なくなってしまいました… 最終的にレポートの長さは108ページになりました… Aを取れましたがその代償はでかかったような気もします。

中身はD’Amico教授が開発した相対軌道要素を用いたD’Amico研お手製の(オタク)制御アルゴリズムの紹介が多く、正直専門的すぎてどこまで自分の研究に応用できるかは分かりませんが、衝突を回避しながら燃料や飛行時間を最小化する最適制御問題をオンボードで解けるように色んな人が頑張ってConvexにしようと努力しようとしていることは良く理解できました。

春学期(2): AA273 State Estimation and Filtering for Aerospace Systems

Schwager教授が教える状態推定に関する講義です。具体的には、まず確率過程やマルコフ過程、Graph Modelの簡単な導入から入って、Recursive Bayesian Estimationを導出、そのLinear-Gaussian Dynamicsにおける特殊な場合としてKalman Filterを導出します。その後、EKF, UKF, Particle Filter, iEKF, Kalman Smootherなどの派生系を紹介し、最後にSLAMについて少し話す、といった感じの流れでした。研究で良く利用する各種フィルタリングアルゴリズムにおいて、置かれている仮定やその長短所などが分かりやすく整理できただけではなく、それらのアルゴリズムを導出する過程を自分の知っている方法とは異なるアプローチで習ったため、知見が広がりました。Schwager教授の講義は板書スタイルなのですが、とてもよく整理されていて分かりやすく、評判もいいです (生まれ変わったら彼の学生になりたい…)。

最終プロジェクトではCovariance Intersection (CI)というアルゴリズムを使って、宇宙機の軌道決定とクロック誤差を分散推定する手法を提案しました (この最終課題を発展させたものを 2024 IEEE Aerospace Conferenceで発表予定です)成績は試験や課題に時間を回せなかったこともあり初のA-… (自分の専門なのに…まあ勉強になったからいいでしょう)

Covairance Intersection を用いた、共分散が未知の2つの推定値の融合

まとめ

必修の講義や自分の研究に近そうな講義を中心に取ったため、AeroAstroの講義が多めでした。AeroAstroは必修講義が多く、選択の自由度もあまりないため、一二年目は取れる講義の幅を広く取りにくいです。やっと必修からも解放されたので、今年度からは研究の幅を広げるために、Computer ScienceやElectrical Engineeringなどのもう少し応用数学よりの講義を取っていきたいと考えています。(今学期は確率論の講義を取っています)