この記事では,TIER IVがオープンソースで提供している自動運転シュミレーター「AWSIM」を使ってみた内容を書いてみました.
環境
推奨PCスペック
OS | Ubuntu 22.04 |
---|---|
CPU | 8コア×2,16スレッド |
GPU | RTX1080Ti |
rosとawsim、autowareのversion
ROS2 | Humble |
---|---|
Autoware | awsim-stable |
AWSIM | AWSIM_v1.1.0 |
基本的にAWSIM autowareのbranchとAWSIMのversionがあっていないと動かないので注意しましょう。(慣れていないうちは推奨の環境の組み合わせを使用しましょう)
GPUの設定まわりで詰まっているIssueがあったのですが、私の場合は以下のようなNvidiaの環境ですんなりセットアップできました。
Sat Feb 18 15:02:05 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:02:00.0 On | N/A |
| 32% 54C P2 58W / 250W | 5940MiB / 11264MiB | 27% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 2401 G /usr/lib/xorg/Xorg 507MiB |
| 0 N/A N/A 2567 G /usr/bin/gnome-shell 71MiB |
| 0 N/A N/A 6665 G ...930758177505787228,131072 262MiB |
| 0 N/A N/A 7069 G ...RendererForSitePerProcess 9MiB |
| 0 N/A N/A 13600 G ...RendererForSitePerProcess 85MiB |
| 0 N/A N/A 17904 C+G ...r/2021.1.7f1/Editor/Unity 4951MiB |
| 0 N/A N/A 28795 G ...os/humble/lib/rviz2/rviz2 34MiB |
+-----------------------------------------------------------------------------+
Quick Start Demo
基本的にはこちらのドキュメントどおりに進めればセットアップできます。
手順
- Autowareの環境構築
- AWSIMのダウンロード
- simulatorの起動
順番に見ていきましょう。
- Autowareの環境構築
こちらはドキュメントの記載内容そのままです。毎度autowareの環境構築のためのお決まりのコマンドのため内容だけ載せておきます。
冒頭に記載した、autowareのbranchやAWSIMのversionがことなるとうまくtopic同士がつながらないため、versionには注意しましょう。
$ git clone https://github.com/autowarefoundation/autoware.git
$ cd autoware
$ git checkout awsim-stable
$ ./setup-dev-env.sh
$ mkdir src
$ vcs import src < autoware.repos
$ source /opt/ros/humble/setup.bash
$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
$ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-w"
2.AWSIMのダウンロード
wgetを使用し,AWSIM.zipをダウンロードし,zipファイルを解凍します.
$ wget https://github.com/tier4/AWSIM/releases/download/v1.0.1/AWSIM_v1.0.1.zip
$ unzip AWSIM_v1.1.0.zip
3.シミュレータを動かしてみる
実行権限をつけて起動しましょう。
chmod +x <path to AWSIM folder>/AWSIM_demo.x86_64
./<path to AWSIM folder>/AWSIM_demo.x86_64
この状態で出ているtopicは制御入力、sensingの結果、車両の状態になります。
/client_count
/clock
/connected_clients
/control/command/control_cmd
/control/command/emergency_cmd
/control/command/gear_cmd
/control/command/hazard_lights_cmd
/control/command/turn_indicators_cmd
/parameter_events
/rosout
/sensing/camera/traffic_light/camera_info
/sensing/camera/traffic_light/image_raw
/sensing/gnss/pose
/sensing/gnss/pose_with_covariance
/sensing/imu/tamagawa/imu_raw
/sensing/lidar/top/pointcloud_raw
/sensing/lidar/top/pointcloud_raw_ex
/vehicle/status/control_mode
/vehicle/status/gear_status
/vehicle/status/hazard_lights_status
/vehicle/status/steering_status
/vehicle/status/turn_indicators_status
/vehicle/status/velocity_status
AWSIMはsensing/vehicleをsimulationで模倣したものとなります。
細かいハマったポイントをいくつか書いておきます。
- GPUのドライバを入れたあとは再起動をしないと反映されないことが多いです。
- 何回か試行しているとros2のノードがたまに正常終了しないことがあり、daemonのstop
ros2 daemon stop
startros2 daemon start
が必要になることがあります。 - ドキュメントはbashrcでautowareをsourceしていることを前提に書かれているので、AWSIMを起動するterminalではautowareをsourceしないと正しくtopicがでません。
- AWSIMの起動まで少し時間がかかるため以下のような画面がでてきますが、起動に時間がかかっているだけなので、15秒くらい待てば正常に動作するようになります。
実際に動かしてみる
Autowareの起動はデモに記載がある通りこちらのコマンドで動かせました。
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit map_path:=$HOME/maps/nishishinjuku_autoware_map
上記のコマンドだけだとmapとlaneletが表示されるだけになります。
こちらに加えてAWSIMのDEMOを動かしてみると以下のようになります。
ゴールを置くと経路を作成し、planningの各モジュールが動作します。
AutowareStatePanelでAUTOのボタンを押すと走行を開始します。
2023/2/18時点のawsim-stableはautoware.universeのhash値(9085f2f31f0d8cbba6cbe3ffc3b8ca447631ad32)を指しているためこちらのパラメータを変更するとplanningの各モジュールの調整が可能です。
レーン変更や障害物回避なども可能です。