スズキ自動運転制御アルゴリズム面接体験記:MPC・車両ダイナミクス・軌跡追従の完全評価
2年の制御アルゴリズム経験、スズキの3回の技術面接の詳細な振り返り:一次面接は制御理論とMPC、二次面接は車両ダイナミクスと軌跡追従、三次面接はプロジェクト深掘りと実車デバッグ、出題問題まとめとアドバイス付き
背景紹介
私はある自動運転会社で2年間制御アルゴリズムエンジニアとして働き、主にMPCと軌跡追従を担当していました。スズキはずっと入りたかった会社です。L4自動運転制御における技術的蓄積が非常に深く、特にMPCと車両ダイナミクスの統合が優れています。今年の5月、制御アルゴリズムエンジニアの募集を見てすぐに応募しました。
この面接の準備には約3週間かかりました。制御理論、MPC、車両ダイナミクス、軌跡追従の知識ポイントをすべて復習しました。特にMPCの各変種(線形MPC、非線形MPC、時変MPC)と車両ダイナミクスモデル(運動学モデル、ダイナミクスモデル、タイヤモデル)は面接の重点です。
面接プロセスは3回の技術面接で構成されていました。以下、各ラウンドの詳細を振り返ります。
面接プロセスの振り返り
一次面接:制御理論+MPC
一次面接は若手のエンジニアで、後で制御チームの方だと分かりました。自己紹介の後、すぐに制御理論の質問が始まりました。
1. PID制御とMPCの違いは?MPCの利点は?
PIDはフィードバック制御で、現在の誤差に基づいて制御量を計算し、制約の処理や未来の予見ができないと答えました。MPCは予測制御で、モデルを使って未来の状態を予測し、制約を満たしながら制御系列を最適化します。MPCの主な利点は3つあります:第一に、入力と状態の制約を明示的に処理できること。第二に、未来の参照軌跡を予見し、事前に対応できること。第三に、多入力多出力(MIMO)システムを処理できることです。
2. MPCの予測ホライズンと制御ホライズンはどう選びますか?
予測ホライズンNpはMPCがどれだけ遠い未来を「見られる」かを決め、Npが大きいほど制御性能は良くなりますが計算量も増大すると答えました。制御ホライズンNcは最適化変数の数を決め、Ncは通常Npより小さく、Nc以降の制御量は一定に保たれます。一般的にNpは3-5秒、Ncは1-2秒で、制御周波数とシステムの動的特性に応じて調整します。実際のプロジェクトではNp=50ステップ、Nc=20ステップ、制御周波数50Hzを使用しています。
3. 線形MPCと非線形MPCの違いは?いつ非線形MPCを使いますか?
線形MPCは線形モデルで予測を行い、最適化問題は凸でQPソルバーで効率的に解けると答えました。非線形MPCは非線形モデルで予測を行い、最適化問題は非凸でSQPや内点法が必要で計算量が大きいです。非線形MPCはシステムの動的非線形性が強いシナリオに適しています。例えば高速大曲率旋回や限界工況などです。実際のプロジェクトでは、低速シナリオでは運動学モデル+線形MPCで十分ですが、高速シナリオではダイナミクスモデル+非線形MPCが必要です。
4. MPCのソルバーには何がありますか?どれを使っていますか?
一般的なソルバーにはOSQP(QP問題)、qpOASES(QP問題)、IPOPT(NLP問題)、ACADOS(高速NMPCフレームワーク)などがあると答えました。私たちは線形MPCにOSQP、非線形MPCにACADOSを使用しています。ACADOSの利点はCコードを生成でき、組み込みプラットフォームでの実行効率が高いことです。
5. MPCの安定性はどう保証しますか?
MPCの安定性保証には主に2つの方法があると答えました:第一に、終端制約法 — 予測ホライズンの終端に終端制約と終端コストを追加し、閉ループ安定性を保証する。第二に、十分に長い予測ホライズン — Npが十分に大きい場合、MPCの安定性は自然に保証される。実際には終端制約法を使用し、予測ホライズンの終端に終端楕円制約を追加して、状態が目標点付近に収束することを保証しています。
6. MPCの計算遅延はどう処理しますか?
計算遅延はMPCの実際の応用における重要な問題だと答えました。解法時間が制御周期を超えると、制御量を時間通りに更新できません。私たちの処理方法は2つあります:第一に、ウォームスタート — 前の時刻の解を現在の初期値として使用し、反復回数を大幅に削減する。第二に、最大解法時間を設定 — タイムアウトした場合、前のステップの解で1ステップ前向き伝播を行い現在の制御量とする。また、陽的MPCも探求しており、最適化問題をオフラインで区分アフィン関数として解き、オンラインではテーブル参照のみを行います。
一次面接は約1時間でした。面接官はMPCについて非常に詳細な質問をしましたが、以前多くのMPCプロジェクトを経験していたので、比較的スムーズに答えられました。
二次面接:車両ダイナミクス+軌跡追従
二次面接はシニアエンジニアで、最初から車両ダイナミクスと軌跡追従について質問されました。
1. 車両運動学モデルとダイナミクスモデルの違いは?
運動学モデルは幾何学的関係のみを考慮し、力やモーメントを考慮せず、タイヤの横滑りがないと仮定すると答えました。最も一般的なのは自転車運動学モデルで、状態量は[x, y, ψ, v]、制御量は[δ, a]です。ダイナミクスモデルはタイヤ力、スリップ角などの物理量を考慮し、車両動態をより正確に記述します。最も一般的なのは自転車ダイナミクスモデルで、状態量にスリップ角βとヨーレートrが追加され、制御量は同じ[δ, a]です。
2. タイヤモデルには何がありますか?Pacejkaマジックフォーミュラはどう使いますか?
タイヤモデルには主に線形タイヤモデル、Pacejkaマジックフォーミュラ、Dugoffモデルなどがあると答えました。線形タイヤモデルは横力がスリップ角に比例すると仮定し、小スリップ角工況に適しています。Pacejkaマジックフォーミュラは経験モデルで、正弦関数でタイヤ力特性をフィッティングし、精度は高いがパラメータが多いです。Dugoffモデルは解析モデルで、タイヤ力の飽和特性を考慮します。MPCでは非線形MPCにPacejkaマジックフォーミュラ、線形MPCに線形タイヤモデルを使用しています。
3. 軌跡追従の誤差はどう定義しますか?
軌跡追従誤差には主に横誤差、方位誤差、曲率誤差があると答えました。横誤差は車両重心から参照軌跡までの最短距離です。方位誤差は車両方位角と参照方位角の差です。曲率誤差は車両の実際の曲率と参照曲率の差です。Frenet座標系では、横誤差はd、方位誤差はΔψです。
4. Stanley法とPure Pursuit法の違いは?
Stanley法は前輪フィードバック制御で、前輪から参照軌跡までの横誤差と方位誤差に基づいて操舵角を計算すると答えました。利点は低速追従精度が高いこと、短所は高速で振動しやすいことです。Pure Pursuit法は後輪追従制御で、後輪から前方のルックアヘッド点までの横誤差に基づいて操舵角を計算します。利点は高速安定性が良いこと、短所は低速追従精度が低く、カーブで内切り現象があることです。実際のプロジェクトでは、低速でStanley、高速でPure Pursuitを使用し、中間速度でスムーズに切り替えています。
5. MPCで軌跡追従をする場合、Stanley/Pure Pursuitと比べて何が有利ですか?
MPCの主な利点は3つあると答えました:第一に、制約を明示的に処理できること(操舵角制限、加速度制限など)— StanleyとPure Pursuitは事後クリッピングしかできない。第二に、未来の参照軌跡を予見し、事前に対応できること — 曲率変化が大きい場所でより良い性能を発揮する。第三に、縦方向と横方向の制御を同時に最適化できること — StanleyとPure Pursuitは横方向制御しかできない。しかしMPCの短所は計算量が多く、StanleyやPure Pursuitほどのリアルタイム性がないことです。
6. 高速シナリオでの軌跡追従にはどんな特別な課題がありますか?
高速シナリオの特別な課題は3つあると答えました:第一に、車両動態の非線形性が増強されること — 大スリップ角でタイヤ力が飽和し、線形モデルが適用できなくなる。第二に、制御遅延の影響が大きいこと — 高速ではわずかな遅延でも顕著な追従誤差を引き起こす。第三に、安全性要件が高いこと — 高速での制御ミスはより深刻な結果をもたらす。高速シナリオでは非線形MPC+ダイナミクスモデルを使用し、タイヤ力飽和制約を追加して、制御量がタイヤの物理的限界を超えないことを保証しています。
二次面接は約1時間15分でした。面接官は車両ダイナミクスについて非常に深い質問をし、特にタイヤモデルと高速シナリオの処理について。答えはまずまずでしたが、いくつかの詳細には確信がありませんでした。
三次面接:プロジェクト深掘り+実車デバッグ
三次面接は制御チームのテックリードで、経験豊富で、面接は技術討論のようでした。
まず最も複雑なプロジェクトについて話すよう求められ、高速シナリオでのMPC軌跡追従プロジェクトについて説明しました。その後、深掘りが始まりました:
1. MPCの制御周波数はどれくらいですか?解法時間は?
制御周波数は50Hzで、各MPC解法は20ms以内に完了する必要があると答えました。実際の解法時間は約5-8ms(線形MPC)と10-15ms(非線形MPC)で、十分な余裕があります。解法がタイムアウトした場合、前のフレームの解で1ステップ前向き伝播を行います。
2. 実車デバッグとシミュレーションデバッグの違いは?
最大の違いは、シミュレーションは決定論的で同じ入力が常に同じ出力を生成することだと答えました。しかし実車には多くの不確実性があります。路面摩擦係数の変化、空気抵抗の変化、車両パラメータの偏差などです。シミュレーションで調整したパラメータは実車で微調整が必要になることが多く、特にMPCの重み行列と制約パラメータです。また実車デバッグでは安全性を考慮する必要があり、いきなり限界工況には行けず、段階的に進める必要があります。
3. 実車デバッグで最も難しかった問題は何ですか?
最も難しかったのは低摩擦路面(雪氷路面)での制御だと答えました。低摩擦路面ではタイヤ力が容易に飽和し、MPCのモデル予測が実際から大きく逸脱し、制御が失效します。私たちの解決策は、MPCに路面摩擦係数のオンライン推定を追加し、推定値に基づいてタイヤ力制約を調整することです。また低摩擦路面を検出した場合、目標速度と加速度を自動的に下げ、安全マージンを増やします。
4. 異なるドライバーの運転スタイルはどう処理しますか?
コンフォート、スタンダード、スポーツの3つの運転モードを提供し、MPCの重み行列を調整して運転スタイルを変更していると答えました。コンフォートモードは加速度とジャークのペナルティを増やし、スポーツモードはこれらのペナルティを減らす代わりに追従精度の重みを増やします。またドライバーの履歴操作データに基づいて重みを自動調整するパーソナライズMPCも探求しています。
5. 制御システムの安全性はどう保証しますか?
安全性は3層で保証していると答えました:第一層はMPC内部の制約で、制御量が物理的限界を超えないことを保証する。第二層は監視層で、制御量と状態量が安全範囲内にあるかをリアルタイムでチェックし、範囲外の場合は安全応答をトリガーする。第三層はハードウェア安全層で、独立したASIL-Dレベルの監視チップがあり、制御層が失效した場合に緊急停止を実行する。3層安全アーキテクチャにより、ソフトウェアにバグがあっても車両が制御不能になることはありません。
6. 自動運転制御の最大の課題は何だと思いますか?
最大の課題は極端工況での制御だと思いますと答えました。通常工況ではMPCはすでにうまく機能していますが、極端工況(低摩擦、高速急旋回、緊急障害物回避)では、車両動態が高度に非線形で、モデル予測の精度が大幅に低下し、制御性能も低下します。極端工況で安全性和安定性をどう保証するかが、制御アルゴリズムの最大の課題です。
三次面接は1時間以上でした。面接官は実車デバッグと安全設計に特に興味を持っていました。最後に質問があるか聞かれ、スズキの極端工況制御における最新の進捗について尋ねると、モデル予測制御と強化学習の組み合わせに関するいくつかの取り組みについて話してくれました。とても興味深い内容でした。
出題問題まとめ
制御理論:
1. PIDとMPCの違い?MPCの利点?
2. MPCの予測ホライズンと制御ホライズンの選択?
3. 線形MPCと非線形MPCの違いと適用シナリオ?
4. MPCのソルバーと選択?
5. MPCの安定性保証方法?
6. MPCの計算遅延処理?
車両ダイナミクス:
7. 運動学モデルとダイナミクスモデルの違い?
8. タイヤモデルとPacejkaマジックフォーミュラ?
軌跡追従:
9. 軌跡追従誤差の定義?
10. Stanley法とPure Pursuit法の違い?
11. MPCで軌跡追従をする利点?
12. 高速シナリオの軌跡追従の課題?
実車デバッグ:
13. MPCの制御周波数と解法時間?
14. 実車デバッグとシミュレーションデバッグの違い?
15. 低摩擦路面での制御課題?
16. 異なる運転スタイルの処理?
17. 制御システムの安全性保証?
18. 自動運転制御の最大の課題?
アドバイス
1. MPCの深い理解が不可欠:ソルバーを使えるだけでなく、MPCの数学的原理(最適化問題の定式化、制約処理、安定性分析)を理解する必要があります。面接官は原理レベルから深掘りします。
2. 車両ダイナミクスが重要:運動学モデル、ダイナミクスモデル、タイヤモデルは導出できなければなりません。面接官はその場で公式の導出を求めることがあります。
3. 軌跡追従方法を比較する:Stanley、Pure Pursuit、MPCの3つの方法の長所、短所、適用シナリオを明確に理解してください。面接官は比較問題が好きです。
4. 実車経験はボーナス:実車デバッグの経験があれば、必ず話してください。面接官は実際の工学的能力を非常に重視します。
5. 安全設計は必須:自動運転制御の安全性をどう保証するかは、ほぼ確実に聞かれます。準備をしておいてください。
6. 準備期間は3週間を推奨:2年程度の制御アルゴリズム経験があれば、3週間の集中的な準備で十分です。MPC、車両ダイナミクス、軌跡追従の3つの方向を重点的に復習してください。
FAQ
Q:スズキの制御アルゴリズム面接の難易度は?
A:かなり難しいです。特に二次と三次面接が。一次は理論重視、二次はダイナミクスの深さ、三次は実車デバッグと安全設計に焦点を当てています。全体として、自動運転会社の中で平均以上の難易度です。
Q:その場で公式を導出するよう求められますか?
A:はい、二次面接で自転車ダイナミクスモデルの状態空間方程式の導出を求められました。主要モデルの導出プロセスを練習して、流暢に書けるようにしておくことをお勧めします。
Q:実車経験は必要ですか?
A:必須ではありませんが、実車経験は大きく加点されます。実車経験がない場合は、少なくとも実車デバッグのプロセスと課題について理解しておいてください。
Q:給与はどのくらいですか?
A:制御アルゴリズムポジションのベース給与は約500-750万円の範囲で、レベルと交渉によって異なります。
Q:面接結果はどのくらいで出ますか?
A:一次面接後3日で二次面接の通知、二次面接後5日で三次面接の通知、三次面接後1週間強でオファーを受け取りました。