KeioTeamWolveZ / wolvez2023-soft

4 stars 0 forks source link

機体のアルゴリズム検討 #18

Closed masato1004 closed 1 year ago

masato1004 commented 1 year ago

ARマーカーの認識に基づいた制御アルゴリズムの検討 3/31迄

@suzukiYU000

本issueに検討内容(iPadで描いた絵やスライドなど)を投稿すること


検討内容

masato1004 commented 1 year ago

マーカーに基づく機体制御アルゴリズム検討

suzukiYU000 commented 1 year ago

モジュール放出後の移動

機体移動1


モジュールの正面から接近

機体移動2 機体移動3 機体移動4


もう少し賢く接近

機体移動5


2つのモジュールと機体の適切な位置関係と移動

機体移動6


メモ

masato1004 commented 1 year ago

FB

to: @suzukiYU000 Cc: @OtaKo50 (上記検討内容について意見あれば是非!)

モジュール放出後の移動について

masato1004 commented 1 year ago

アルゴリズム検討現状まとめ

masato1004 commented 1 year ago

スライド作成について

@suzukiYU000 検討してもらった動画をパワポのアニメーションで作ってくれた(らしい)ので,うまい具合にテキストの説明と対応させながら図示してもらえれば!

suzukiYU000 commented 1 year ago

モジュール放出後の移動について

前方のカメラからでは放出直後はモジュールは見えないので、あらかじめプログラムされた動きになります。 空転の可能性が高い路面では、設定する走行距離が長いほど、ズレが生じやすくなる可能性が上がりそうです。 解決案簡単なフローにする(→①)か、自己位置推定的なことをする(→②)

①簡単なフロー

機体移動

②自己位置推定

マーカーを認識するまでの間で自己位置推定に使えそうな情報は今のとこは以下の2つ?

モジュールの正面から接近について

横からの場合、認識できた時点で法線考えるフローに移っても問題なさそうです。 見えない走行区間で自己位置推定やモーター入力に使える情報はやはり方位とかですかね。

もう少し賢く接近について

マーカー位置の位置によって限られてしまう。使えるのは、所望の位置から大きくずれていた場合。 機体移動賢い となるとあまり使う機会がないかもしれないです。 曲線的に移動できるようにした方が移動距離を見ても省エネなのが明らかなのでできるようにしたいです。


一度近づいたら後退できないので、接近しすぎる前に二つのマーカーを見つけて、二等辺三角形の頂点の位置に移動するのが良さそうです。 ➩ 「頂点の位置に所望の向きで到着する」 が課題になりそうです。(←苦戦してます。)

masato1004 commented 1 year ago

モジュール放出後の移動について

@suzukiYU000

フローについて

suzukiYU000 commented 1 year ago

フローについて

"AR基準にする"  ➩これで行けそうです!

自己位置推定について

カルマンフィルタについて、勉強不足すぎるので、調べてみます!

賢い接近 & 頂点の位置に所望の向きで到着する

一つ見つけたので、張っておきます。

PythonによるDubinsパスプランニングサンプルプログラム

位置と角度を指定してコースを作るアルゴリズムが紹介されてました。

おそらくこれで作成されるコースでも、マーカーを見失いそうな区間がありそうなので、 これも見える区間と見えない区間の移動方法の切り替えをすると良さそうです。

スライドについて

機体移動のスライドは、上記URLの方法の方が学術的で良さそうですかね...

masato1004 commented 1 year ago

FB

@suzukiYU000

位置と角度を指定した接近について

masato1004 commented 1 year ago

移動アルゴリズムの検討・実装検証

OtaKo50 commented 1 year ago

Dubins path について

サンプルコードを用いて、経路途中で再びdubins [pathによる経路計算を行った。 直線の途中で再び計算すると、ほとんど同じ経路(赤)となった。 ただし少しずれている?ように見えるのでどのくらい誤差が出ているかはまだ不明。

サンプルコードの経路

スクリーンショット 2023-04-23 19 28 40

途中計算あり

スクリーンショット 2023-04-23 19 29 14
OtaKo50 commented 1 year ago

また、近すぎると(指定した半径と関係してそう)大きく経路が変更されてしまうので、経路計算の更新はRSLやRSRなどによる3つの流れのうち二つ目までに行えば良い?

スクリーンショット 2023-04-23 19 32 37
suzukiYU000 commented 1 year ago

Dubinsパスの追従方法の検討 

前に載せたサイト:Dubinsパス

作戦①

Dubinsパスを計算後、現在位置からゴールまでのモーターの出力を算出 ➩ Dubinsパスの円の半径は一定のため、円周を回るような左右のモーターの出力バランスは既知  ➩Dubinsパスの計算からカーブ、ストレートの長さは既知   ➩所望の距離の分だけモーター出力

作戦②

2つのマーカーが見えたらその都度再計算 ➩経路追従の誤差をその都度補正可能

おそらく、①と②のMIX

経路にチェックポイントを設定し、見えたら補正


次回

ロバストな経路追従方法の検討

 磁気センサとか?  "センサフュージョン"ってワードがイケてる

作戦①と②のMIXの仕方

 どれくらいの頻度で再計算する?

OtaKo50 commented 1 year ago

dubins path の運用アイデアメモ

進んでる最中に停止&色検出を挟む?

OtaKo50 commented 1 year ago

その他運用アイデアメモ

経路生成のための終点の推定のとき、色検出による距離推定はピクセルの面積から算出 ➡色の見えた位置がカメラの画角のどこにあるかによって距離の範囲を制限する!  ➡モジュールが一部見えず実際より遠い距離が算出されても外れ値として扱えそう

OtaKo50 commented 1 year ago

今の近づく方針

1.色認識による始点の修正(回転) 2.dubins pathによる経路計算と走行 (3.計算しなおし、経路修正)

suzukiYU000 commented 1 year ago

2つのARマーカーから目標点の算出方法

image

ARマーカーを読み取り、DubinsPathを生成

https://user-images.githubusercontent.com/126460582/235405116-f86e75b7-eb81-43a2-b04d-04860e86bd98.MOV

<メモ>

19238901 commented 1 year ago

新OS × 旧機体 動作確認 (実施日:2023/05/15)

動作確認動画

連絡事項

環境

できたこと

できなかったこと・要検討事項

masato1004 commented 1 year ago

実装について

@KeioTeamWolvez2023/soft 班長がいない中積極的にやっていただきありがとうございます!! 良い進捗が埋めているように思います.

連絡事項について

モーターストップファイル

これに関しては昨年から同じ問題があって,legacy_code/Motor/motor_stop.py当該ファイルが存在します.今年も流用できます.

モーターの異音

こちらはラズパイを使用している時ならではのエラーで,半分くらい仕方ないです.

できなかったこと・要検討事項

カメラについて

suzukiYU000 commented 1 year ago

走行中のマーカー認識試験

結果:出力30でゆっくり走行してもブレる。

対策案

  • 一時停止しながら接近する方法に変更
  • ブレやボケを補正するプログラムの導入
  • カメラを支える首の強化
  • カメラ位置の変更

https://github.com/KeioTeamWolvez2023/wolvez2023-soft/assets/126460582/601afa76-352e-4b47-a7db-819bdc018fa1

https://github.com/KeioTeamWolvez2023/wolvez2023-soft/assets/126460582/a0ba7912-aa8c-4473-ba39-5f197aac3f64

https://github.com/KeioTeamWolvez2023/wolvez2023-soft/assets/126460582/85e3816f-eeb7-4129-bbd1-fb4649eb7e6c

https://github.com/KeioTeamWolvez2023/wolvez2023-soft/assets/126460582/28338c53-d4d7-46e0-954d-68def973fbbb

https://github.com/KeioTeamWolvez2023/wolvez2023-soft/assets/126460582/53a9b403-7543-4a4f-9ca4-24b308b91913