ウォールフォローにロジックの一例をご紹介します。

LIDARを使ったプログラムのロジック

LIDARは、主に壁との距離を測定し、この距離を一定に保ちながら測定することを前提としています。(もちろんその他に距離を測定したいものがあれば、測定可能です。)

基礎ロジック

壁のマシンの距離に応じて「if文」を挿入することで、うまく走行することができます。

Untitled

シミュレーションのような理想に近い環境では、上記の基礎ロジックのみで十分うまく走行できます。

<サンプルプログラム>

<aside> 🔥 以下のプログラムはそのまま実行できません。適切に修正を加えて実行してください。

</aside>

good_distance = 10
L_green = foo_scan_data #LIDARで取得した値を入れて下さい

if L_green > good_distance:
	angle = 右

elif L_green < good_distance:
	angle = 左

else:
	angle = 直進

応用ロジック

実世界では、基礎ロジックのみでマシンを動かすことは非常に難しいです。例えば、以下の状況下が想定されるからです。

Untitled

基礎ロジックでは、マシンの向きを考慮していないことが原因です。

そこで、以下の2つの値も測定するとより精度を上げる効果を得られることが期待できます。

Untitled

基礎プログラムと応用プログラムを組み合わせると以下のようなプログラムになることが想定できます。

<サンプルプログラム>

<aside> 🔥 以下のプログラムはそのまま実行できません。適切に修正を加えて実行してください。

</aside>