NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

ラジコンをArduinoで自動運転!その13(自動運転の判断)

 ラジコン の衝突回避の他に、おまけでラジコンを完全自立走行出来る様に、測距センサー の値から自動運転の判断基準を考えてみました。

1. 自動運転の判断

 と言う事で3つの測距センサーの値を以下3つの状態と考えてラジコンの動作を考えてみます。

センサーからの情報:取り敢えず左の状態を数値に変換 
①何もない:0           
②なんかある:0.5           
③ぶつかりそう:1             

 3つの測距センサーにそれぞれ上記3つの状態が有るとし、その時の全組み合わせは3の3乗=27通りになります。
 これら27通りの組み合わせの状況一つ一つを想像しながら自分だったらラジコンをどう操作するのかを表1の通り考えてみました。

           表1:自動運転の判断基準
項目 センサー値の入力
0(何もない)、
0.5(中距離に障害物が有る)
1(
近くに障害物が有る)
ラジコン操作の出力
ステアリング:-1(左),0(真直ぐ),1(右)
スロットル:-0.5(バック),0(止まる),
0.5(徐行),1(走る!)
命令番号 左    正面   右    フロントステア スロットル  リアステア 
0 0 0 0 0 1 0
1 0.5 0 0 0 1 0
2 1 0 0 0.5 0.5 -0.5
3 0 0 0.5 0 1 0
4 0.5 0 0.5 0 1 0
5 1 0 0.5 0.5 0.5 -0.5
6 0 0 1 -0.5 0.5 0.5
7 0.5 0 1 -0.5 0.5 0.5
8 1 0 1 0 -0.5 0
9 0 0.5 0 -0.5 0.5 0.5
10 0.5 0.5 0 0.5 0.5 -0.5
11 1 0.5 0 1 0.5 -1
12 0 0.5 0.5 -0.5 0.5 0.5
13 0.5 0.5 0.5 0 -0.5 0
14 1 0.5 0.5 0 -0.5 0
15 0 0.5 1 -1 0.5 1
16 0.5 0.5 1 0 -0.5 0
17 1 0.5 1 0 -0.5 0
18 0 1 0 1 0.5 -1
19 0.5 1 0 1 0.5 -1
20 1 1 0 1 0.5 -1
21 0 1 0.5 -1 0.5 1
22 0.5 1 0.5 0 -0.5 0
23 1 1 0.5 0 -0.5 0
24 0 1 1 -1 0.5 1
25 0.5 1 1 0 -0.5 0
26 1 1 1 0 -0.5 0

 上記3つのセンサーの状態からステアリングの操作及びスロットルの操作をそれぞれ数式に出来ればプログラムがとてもシンプル(2行位?)になります。
※しかも27通り以上の中間の状態(0.75とか)も無段階で生成しスムーズな自動運転が可能になるはず!
 取り敢えずEXCELを使って表1について重回帰分析をやってみましたが、入力の値と出力の値の相関係数が低く私にはお手上げです
 残念ながら50行以上のプログラムになりそうです

2. まとめ

 昼ぐらいから体調が悪い上、パソコンフリーズ×3、NETフリーズ×多数と、今日は色々と絶不調です
 明日更新できるのか・・・。
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ラジコンをArduinoで自動運転!】目次に戻る