バックナンバーはこちら
https://www.simulationroom999.com/blog/model-based-of-minimum-backnumber/
はじめに
オープンソースドライビングシミュレータであるCARLAの話。
PID制御の組み込みと、車速の取得ができたので動かす。
登場人物
博識フクロウのフクさん

イラスト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
動かしてみた・・・が?

よし!ばっちり組み込んだよ。
あとは動かすだけかな?

うーん。
動くとは思うよ。

「思うよ」って・・・。

まぁ動かしてみればいいんじゃない?
シミュレーションだし、何かが壊れるって心配もないよ。

まぁやってみるか・・・。

・・・。

これ、むちゃくちゃ処理が重い!!
キーボードの操作も受け付けたり受けつけなかったり。
しかも受けつけないことの方が多い!!

だろうね。

知ってたのか?!

いや、予想はしていたってだけだよ。

解決策を!早く!
とりあえずSleep入れる

原因はPythonAPIの叩きすぎだね。
というわけで、PID制御とかキー入力を処理するループ処理のところがあるんだけど、
そこにsleep関数を差し込めば処理が軽くなるんじゃないかな。

どこに入れれば良い?

(うーん、いろいろヒントは言ったつもりだったんで自分で見つけて欲しいんだけどなぁ。)

game_loop関数の中にwhileループがあるんで、
その中にsleep(0.2)ってのを追加すればOKだよ。

引数の0.2ってのは?

sleepする時間だね。
単位は秒なんで、0.2ってことは\(200[ms]\)相当になる。
sleep関数を入れてから動かしてみた・・・が?

よし、sleep関数を差し込んだぞ!
これで動かす!

あれ?

どうしたん?

一応、動いて自動で50[km/h]を目指すような挙動はしてはいるんだけど・・・。

むっちゃ制御が弱い!

まだ課題があるってことだね。
まとめ

まとめだよ。
- PythonAPIを叩きすぎると重くなる。
- Sleep関数等を使用して処理の頻度を下げることで回避可能。
バックナンバーはこちら
コメント