open-rdc / aiformula

MIT License
5 stars 1 forks source link

gnssnavを既存のシステムに組み込む #81

Closed kyo0221 closed 4 months ago

kyo0221 commented 5 months ago

gnss_navigationがパッケージ内でパラメータを定義していたり起動を個別に行う必要があったため、既存のmain_executorにパラメータを統一してマルチスレッドでgnssnavを呼び出せるようにする (feat/gnssnav_develop)

kyo0221 commented 5 months ago

6/11(火)に実環境での実験を行う 場所:食堂横駐車場 条件:低速域(1m/s程度)、/vectornav/poseを使用した自律移動

kyo0221 commented 5 months ago

今後の作業 ・パラメータをmain_executorの方から参照できるようにする ・津田沼における実験用csvファイルの作成 ・シミュレータ環境での動作確認

kyo0221 commented 5 months ago

現状の問題 ・main_executorを立ち上げたときに以下のようなエラーが出てくる Screenshot from 2024-06-07 21-49-02

masakifujiwara1 commented 5 months ago

現状の問題 ・main_executorを立ち上げたときに以下のようなエラーが出てくる Screenshot from 2024-06-07 21-49-02

上記のエラーに関しては,path_publisher_nodeのパラメータであるfile_pathの引数が渡されていないことが要因だと思います. https://github.com/open-rdc/AIFormula_private/blob/49ade44a5f06eeeb8bba78877177bdc59d06423a/gnssnav/src/path_publisher_node.cpp#L21

また,シミュレータ上で動作確認を行う際は,以下のリンクのように仮想canを使用することでCannot find device 'can0'が出ないようになると思います. https://qiita.com/bunnyhopper_isolated/items/33a7b7d6a7ceeb51323d ※ 例がvcan0であることに注意

kyo0221 commented 5 months ago

https://github.com/open-rdc/AIFormula_private/blob/feat/gnssnav_develop/gnssnav/src/path_publisher_node.cpp#L22 ファイルパスについてシェアディレクトリを使用して指定することにした.

main_executorのconfigにコースデータを含めている.

変更後でも変わらずmain_executorを立ち上げたときのエラーが発生している

kyo0221 commented 5 months ago

現状の問題 ・main_executorを立ち上げたときに以下のようなエラーが出てくる Screenshot from 2024-06-07 21-49-02

上記のエラーが解決しました. シェアディレクトリを正しく設定できていなかったのが原因だったようです.

kyo0221 commented 4 months ago

6/11の実験の結果 以下のエラーが再発してしまい、自律走行を行えなかった. error_params_yaml

シェアディレクトリを通じてcsvファイルを開けていたことは確認できたが、エラーが発生していた

エラーはvectornavを起動したときに発生し, main_executorの他のノードが切れてしまう現象も発生した. また, エラーは発生するときと発生しない時があった.

今後はエラーの原因を探すこととマルチスレッドにvectornavを含めていないことがわかったため, main_executorを立ち上げたときにvectornavも立ち上げられるようにする.

kyo0221 commented 4 months ago

いくつかの問題を解決しました.

パラメータファイルを読み込めていない →ワイルドカード部分にパラメータを記述することで読めるようになった

followpath関数の周期とgnss_pathがパブリッシュされる周期が違う →両方共100msおきに実行されるように変更した(パラメータファイルで変更可能)

follower_node起動時にエラーが発生する問題(下記のものと同様)

6/11の実験の結果 以下のエラーが再発してしまい、自律走行を行えなかった. error_params_yaml

シェアディレクトリを通じてcsvファイルを開けていたことは確認できたが、エラーが発生していた

エラーはvectornavを起動したときに発生し, main_executorの他のノードが切れてしまう現象も発生した. また, エラーは発生するときと発生しない時があった.

今後はエラーの原因を探すこととマルチスレッドにvectornavを含めていないことがわかったため, main_executorを立ち上げたときにvectornavも立ち上げられるようにする.

→purepursuitにおける先読み点の座標を格納しているpoint_のメッセージ型をgeometry::msgs::msg::PoseStampedからgeometry::msgs::msg::Poseに変更したことで今まで発生していたエラーが発生しなくなった.

kyo0221 commented 4 months ago

マルチスレッドでgnssnavが起動できることが確認できたため, システムに組み込むことができたと考えてcloseします.