概要
「初心者がAI Challengeやってみた」シリーズの第7弾です。
前回はAutoware-Miniのlaunchファイルを使い、最小構成のAutowareを使ってみました。
今回はAutowareとは別の障害物回避モジュールをAutowareに組み込んで使うことを目標に作業をしましたが、かなり苦戦してまだ実装ができていません。一応やったことを記録として残しておきます(もし何かアドバイス等あれば大歓迎です!)
===
本シリーズではJapan Automotive AI Challenge 2023にautoware初心者の筆者が試行錯誤しながら挑戦する記録を公開しています。自動運転に興味があるけどプログラミングに自信が無い方などの参考になれば幸いです。
前の記事はこちら:
- 第1弾:初心者がAIチャレンジやってみた(1):Autowareを動かしてみる
- 第2弾:初心者がAIチャレンジやってみた(2):1つ目の障害物の回避成功
- 第3弾:初心者がAIチャレンジやってみた(3):2つ目の障害物の回避成功
- 第4弾:初心者がAIチャレンジやってみた(4):全障害物回避達成!(全パラメータ公開)
- 第5弾:初心者がAIチャレンジやってみた(5):開発環境の再構築(番外編)
- 第6弾:初心者がAIチャレンジやってみた(6):Autoware-Miniを使ってみる
筆者はautoware初心者です。
説明等が正確でない可能性があるので本記事だけではなく他の記事やautowareのドキュメントも確認するようにしてください。
障害物回避モジュール
自作をするという選択肢もあったのですが、ちょっと大変なのでGitHubとかに載っているものを今回は使ってみます。
経路生成については以下のGitHubに色々な手法のPython実装が載っています。
これらを使う場合はROSで使えるようにコードを変える必要がありそうです。
今回はState Lattice Plannerという経路生成の手法を使ってみたいと思います(特に深い理由はありません)。
State Lattice PlannerをROS2で使えるか調べたところ、Navigation 2というものを見つけました。
ROSにあったNavigation StackのROS2バージョンのようなものらしく、経路生成に限らずロボットのセンシングや制御、可視化ツールなど様々なものが実装されているそうです。
こちらのSmac State Lattice Plannerを使うことにします。
Navigation 2 の動作確認
早速ここから詰まりました。
インストールをしてlaunchファイルを実行するだけの単純な作業なのですが、私の環境で実行をするとコストマップが生成されずに、経路も生成されないという謎の現象が発生してしまいます。
Warningを見ると"No map received"と書いてあるのですが、調べても解決方法が分かりませんでした。
チュートリアルを通して動作の確認だったりをしたかったのですが、残念ながらできなかったです…
とりあえず進めてみる
コストマップが表示されないのはnavigation機能とは関係ないと考えて、とりあえずautowareに組み込めるかを試してみる。
公式サイトのこの部分を参考にしてみる。
多分aichallenge_submit
フォルダ内にコードを置いていいということ?だと思うのでそうしてみる。
まずはNavigation2をgit cloneする。
git clone https://github.com/ros-planning/navigation2.git
クローンしたnavigation2
というフォルダをaichallenge_submit
の中にコピー。
Rockerコンテナ内
cd /aichallenge
bash build.sh
# ここで色々とエラーが出るのでsudo apt installとかする
# nav2_XX packageはすでに存在するみたいなエラーが出たのでそのフォルダを削除
正直上記でやっていることが正しいかが分からないのであまり真似をしないほうが良いかもしれないです。
色々とやってみましたがビルドは成功しませんでした。
今後の予定
今後の予定としては引き続き経路生成モジュールの導入を目指してがんばります。
もしかしたらNavigation2以外のものを入れることになるかもしれないです。
Autoware-Miniになってモジュールの機能が分かりやすくなった(?)とはいえ、やはりある程度ROSやAutowareの知識がないと難しいですね…