バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
オープンソースドライビングシミュレータであるCARLAの話。
ついに動かす時。
そして「最小構成のモデルベース開発事例」の最終回でもある。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
CARLAでPID制御のシミュレーション

よし。準備できた!

お疲れ。
早速動かしてみようか。

今回は大丈夫だよね?
また変なことにならないよね?

うーん、たぶん大丈夫だと思うけど、
動かしてみないことにはわからないなぁ。

えー!まだなんかあるのかー?!

だから、わからないって!
一応、私が想定した問題はクリアになっているが、
想定していない問題もあるかもしれない。
よって、四の五の言わずに動かしな!

お、おう。
(CARLA起動)

お、ちゃんと動いて・・・。
おー勝手に加速して・・・
あ、しまったハンドル操作が・・・。
でも、減速した分、自動で再加速したぞ!
おー。いい感じかも。
そして、以下がVOICEVOXによる音声合成のテストを兼ねて作成した解説動画。

途中、太郎くんが操作ミスしたけど、
まぁそれも動作確認の上ではちょうど良かったかもね。
一応、速度の波形も取れたんで出しておく。


結構いい感じで50[km/h]をキープするような制御になってたよ。
自動車業界とPython

とりあえず、一通りのつながりはOKかな?
使い勝手とかは適当にカスタマイズするんだね。

Pythonをあんまり知らないからなぁ。
勉強しておこうかなぁ。
でも、この業界で自動運転以外でPythonってあんまり使わなそうなんだよなぁ。

そうでもないよ。
自動テスト環境とかでPythonが使われることも多い。

なんで、Python?
スクリプト言語としてはRubyとかPerlとかいろいろあるのに?

Pythonというか、
PythonのNumPyパッケージのベクトル/行列演算が制御や制御対象の入出力と相性が良いんだろうね。
簡単にテストシナリオが組めるんで知っておくといろいろ効率化に役立つと思うよ。

おー、それはなんかモチベーション上がるね!
よし、基本的なところは勉強しておこう。
最終回?

今回で、57回。
うーん、長かった。

モデルベース開発ってキーワードが予想以上にビッグワードだもんねー。

そうそう。
モデルとして見ても制御器の話もあれば、制御対象の話もある。
開発ってことになると、プロセスの話や手法の話にもなる。
当然、開発に於いての品質保証のあるんで、仕様やツールの話も出てくる。
全部を語ることは不可能だし、全部を知るってことも不可能だね。

でも、結構ちょっとした工夫で劇的に変わるってのが分かったかな。

それは重要だね。
必ずしも高価なツールや環境は必要ってことはなくて、
やはり創意工夫の精神が土台にあって初めてモデルベース開発に意味が出てくる。

創意工夫って言われても、正直疑問にすら思わないってことも多そうだよね。

日ごろからどこが問題かを意識していないと、
何に創意工夫したら良いかもわからないだろうね。
シンプルな観点だと、どこにコストが寄ってるかをみるだけでも、重点な問題が見えることはあるね。
例えば、モデルベース開発の先駆けってHILSなんだけど、
HILSは検証工程に多大なコストが寄っていることを問題とした対策と言えるんだよ。
よって、常にコスト構造を意識しておくと良いかもね。

コスト構造かー。
正直意識はしてなかったなー。
これからは意識して見るかー。

というわけで、
「最小構成のモデルベース開発事例」は今回で最終回!

もはや何が最小構成なんだか分からなくなってきたけどね。

何はともあれ、
ご拝読ありがとうございました!

ありがとうございました!
まとめ

まとめだよ。
- CARLAにPID制御を組み込めた。
- 自動車業界で自動運転以外でもPythonの使いどころは多い。
- 自動テスト環境の一部とか。
- コスト構造を意識すると問題点が見えやすい。
- これにより何に対して創意工夫をすれば良いかが分かる。
- ご拝読ありがとうございました!
バックナンバーはこちら
コメント