まずはじめに
Autowareの機能はマップから読み取った自己位置から速度や向きを計算しているため自己位置推定ができないとなにもできません。
今回はAutowareとLGSVLシミュレータを使って自己位置推定をして自動走行するまでの過程をご紹介します。
ここではLGSVLのチュートリアルがバージョン1.14.0で構成されているため、それに合わせて1.14.0を使用します。
Autowareの様々なバージョン使ってるとパラメータとか混乱してくるのでroswtf [launchファイル名]
を使って必要なトピックや構成を確認するといいです。
(2021.04.03:追記、20年6月のバージョンではすでにブリッジできるシミュレーターがあるので追記)
・その1:Autoware.AIの環境設定
・その2:ROSの情報まとめ
・その3:Autoware.AIとLGSVLシミュレータを使ってみる←いまここ
項番 | ページ内リンク |
---|---|
1 | 1. 環境設定 |
2 | 2. LGSVLシミュレータの設定 |
3 | AutowareとLGSVLシミュレータを接続する |
4 | Autowareの自己位置推定 |
5 | 参考リンク |
1. 必要なソフトのインストール
Git Large File Storage (LFS)のインストール
sudo apt-get update
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
2. LGSVLシミュレータの設定
必要なソフト(Linux向け) <- 追加しました。
sudo apt-get update
sudo apt-get install -y libvulkan1
LGSVLのバイナリダウンロード
LGSVL Downloadから最新のバイナリをダウンロードします。
いろいろなMAPを試したい場合は最新版を使用するようにしてください。
なおシミュレータを使用するのにユーザー登録が必要です。
もし起動できない場合は実行属性がないかもしれないので[プロパティ]から[プログラムから実行可能]にチェックが入っているか確認してみてください。
下記のコマンドでも可能です。
chmod a+x simulator
補足:シミュレーターの選択
(2021.04.03:追記、20年6月のバージョンではすでにブリッジできるシミュレーターがあるので追記)
シミュレーターを選択したら【4. Autowareの自己位置推定からお試し走行まで】に進む
Mapダウンロード
add newをクリックしたあとMap Nameに「Borregas Avenue」、Map URLにurlを入力します。
https://content.lgsvlsimulator.com/maps/borregasave/
ほかのMapデータはこちらLGSVL Mapsにあります。
vehicleダウンロード
add newをクリックしたあとVehicle NameにAWF Lexus RX 2016、Vehicle URLにurlを入力します。
https://content.lgsvlsimulator.com/vehicles/awflexusrx2016/
ほかの車両データを使用したい場合ははこちらLGSVL Vehiclesにあります。
vehicleセンサの設定
Bridge TypeにROSを選択、サンプルにあるjsonの中身をSensorsに貼り付けます。
[
[
{
"type": "GPS Device",
"name": "GPS",
"params": {
"Frequency": 12.5,
"Topic": "/nmea_sentence",
"Frame": "gps",
"IgnoreMapOrigin": true
},
"transform": {
"x": 0,
"y": 0,
"z": 0,
"pitch": 0,
"yaw": 0,
"roll": 0
}
},
{
"type": "Lidar",
"name": "Lidar",
"params": {
"LaserCount": 32,
"MinDistance": 0.5,
"MaxDistance": 100,
"RotationFrequency": 10,
"MeasurementsPerRotation": 360,
"FieldOfView": 41.33,
"CenterAngle": 10,
"Compensated": true,
"PointColor": "#ff000000",
"Topic": "/points_raw",
"Frame": "velodyne"
},
"transform": {
"x": 0,
"y": 2.312,
"z": -0.3679201,
"pitch": 0,
"yaw": 0,
"roll": 0
}
},
{
"type": "Keyboard Control",
"name": "Keyboard Car Control"
},
{
"type": "Vehicle Control",
"name": "Autoware Car Control",
"params": {
"Topic": "/vehicle_cmd"
}
}
]
シミュレータの設定
Simulation Nameに適当な名前をつけたあと、Map&Vehiclesを設定する。
MapはBorregas Avenue
を選択、VehicleはAWF Lexus RX 2016
を設定して(ROSの動作するPCのIPアドレス):9090
の形式でrosbridgeに対する接続設定を実施します。
(1台で完結させる場合はlocalhost:9090
)
右下の赤色の三角をクリックするとシミュレーションを開始できます。
3. AutowareとLGSVLシミュレータを接続する
Autoware-dockerの起動
今回はマニュアルAutoware.AI 1.14.0 with LGSVL Simulator にそってV1.14.0をビルドしてシミュレータに接続します。
細かいところはその1を参照してください。
# $WORKING_DIRECTORYは任意
cd $WORKING_DIRECTORY
git clone https://github.com/Autoware-AI/docker.git
cd $WORKING_DIRECTORY/docker/generic
./run.sh -t 1.14.0
Autoware-dockerとの複数コンソールでの接続
--rmオプションを削除して起動するとdockerからexitしてもimageが残るようになります。
dockerからexitしてからdocker ps -a
でコンテナを検索すると前回の起動していたコンテナ名がわかります。
起動していない場合はdocker start [イメージ名]
で起動しましょう。
docker exec
コマンドでdockerに入ることができます。
docker ps -a
docker start [イメージ名]
docker exec -it [イメージ名] /tmp/entrypoint.sh
cd $WORKING_DIRECTORY/docker/generic
もう一つコンソールを開いてからdocker exec
コマンドを実行すると複数のコンソールでdockerに入ることができます。
docker exec -it [イメージ名] /tmp/entrypoint.sh
cd $WORKING_DIRECTORY/docker/generic
LGSVLシミュレータとはROSBRIDGEで接続します。
LGSVLシミュレータを立ち上げてからコンソール1でROSBRIDGEを立ち上げて接続してみましょう。
# Autowareの環境ファイルの読み込み
source Autoware/install/setup.bash
# ROSBRIDGEを立ち上げ
roslaunch rosbridge_server rosbridge_websocket.launch
さきほどのコンソール2で接続を確認しましょう。
rostopic list
コマンドでLGSVLシミュレータからセンサの値などのトピックを確認することができます。
# Autowareの環境ファイルの読み込み
source Autoware/install/setup.bash
# トピックの確認
rostopic list
複数コンソールから接続するときはかならず環境ファイルの読み込みをしましょう。
4. Autowareの自己位置推定からお試し走行まで
さて、いよいよ自己位置推定です。Autoware-dockerを起動するとホームにshared_dirという共有フォルダが作られます。
shared_dirのデータはAutoware-dockerからも読み書きできるので非常に便利です。
# LGSVLのサンプルファイルの読み込み
cd ~/shared_dir
git clone https://github.com/lgsvl/autoware-data.git
クローンが終わったらコンソール1に戻ってruntime_managerを立ち上げます。
runtime_managerが見つからない、というエラーが出る場合は
source Autoware/install/setup.bash
(環境ファイルの読み込み)
を忘れているケースが多いです。
# runtime_managerを立ち上げ
roslaunch runtime_manager runtime_manager.launch
runtime_managerが立ち上がったらそれぞれlaunchファイルの設定をしていきます。
# Map
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_map.launch
# Sensing
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_sensing_simulator.launch
# Localization
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_localization.launch
# Detection
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_detection.launch
# Mission planning
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_mission_planning.launch
# Motion plannning
/home/autoware/shared_dir/autoware-data/BorregasAve/my_launch/my_motion_planning.launch
補足:my_localization.launchの44行目を下記のように有効化すると車両モデルが読み込まれます。
ボタンをクリックしてlaunchファイルを実行します。右下のrvizをクリックするとrvizが立ち上がります。
Autowareの自己位置推定は初期位置を指定する必要があるので2D Pose Estimateで自分の位置を指定します。
2D Pose Estimateをクリックして緑の矢印になるようにドラッグして指定します。
下記のようになればOKです。LGSVLシミュレータは十字キーで車両を操作することができるのでrvizで確認してみましょう。
Autowareで走行してみる
2D Navi Goalで目的地点をしましょう。2D Navi Goalをクリックして緑の矢印になるようにドラッグして指定します。
そうするとしばらくすると自動で走行します。経路はAutowreが道路にそって作成し走ってくれます。道路はVector_mapという形式でAutowareのパッケージが読み込んでくれます。
まとめ
年末年始にPCの入れ替えがあるのでAutowareのまとめは年明けに時間を見つけてご紹介していきたいと思います。
rvizの2D、3Dの切り替えがわかりません。誰か教えてくださるとありがたいです。
(2021.04.03:追記、rvizの切り替え)
rvizの右側のパネルType:をThirdPersonFollower
にすると3Dに表示が切り替わります。
5. 参考リンク
・Git Large File Storage (LFS)
・How To Install "libvulkan1" Package on Ubuntu
・LGSVL Download
・LGSVL Maps
・LGSVL Vehicles
・Sample sensor configuration
・Web UI Vehicles Tab Explanation
・Autoware.AI 1.14.0 with LGSVL Simulator