CARLAシミュレータの導入
CARLA
近年,研究が急速に進む 自動運転車(Autonomous Car) のシミュレータの一つである CARLA Simulatorの導入に関して解説します. このCARLAはオープンソースとして開発されており, 自動運転車の実現に必須の,LiDAR(Light Detection and Ranging) ,多視点カメラ,深度カメラ などのセンサー群を利用することができます. この他にも,マップの自動生成や,交通シナリオの作成など,シミュレータに必要な要素も含まれています. このCARLAは,Alexey Dosovitskiy 氏らによって開発され, 2017年に Robot Learning の国際会議において,「CARLA: An Open Urban Driving Simulator」というタイトルで論文も発表されています.
CARLAの導入
CARLAの導入はとても簡単で,Githubで公開されているビルドされたパッケージをダウンロードするだけです. 現時点(2019年8月)では,最新版は 0.9.6 ですが,ここでは安定版の 0.8.2 を利用することにします.
ダウンロードしたファイルを解凍すると, CarlaUE4.exe というウィンドウズ用の実行ファイルがあります. これをダブルクリックすると,シミュレータが全画面表示されます(スタンドアロン・モード). 画面左には,速度(Speed)やギア(Gear)などの情報が表示されていることがわかります.
この画面では,キーボードで車両を操作することができます(操作一覧も参照のこと). キーボードで操作するのはとても難しく,ぎこちない運転になってしまうので,オートパイロット を試してみると良いです.
キー | 操作 |
---|---|
W | アクセル |
A | ステアリング(左) |
S | ブレーキ |
D | ステアリング(右) |
Q | ギアチェンジ |
P | オートパイロット |
Pythonクライアントの接続
Python から,CARLAに接続し,環境をコントロールすることができます. Pythonのバージョン 3.5 の利用が推奨されており,最新の 3.7 ではエラーにより動作しませんでした. また,CARLAは 2000番,2001番,2002番 のポートを利用するため, ファイアウォールの設定を修正して,ポートを空けておく必要があることに注意しましょう. まずは,実行に必要なライブラリを pip コマンドで導入します( numpy ,pygame などが含まれる).
% pip install -r PythonClient/requirements.txt
次に,CARLAをサーバとして起動します(サーバ・モード). 引数に -carla-server を設定すればOKです.
% CarlaUE4.exe -carla-server
それでは,Pythonクライアントを接続します. ここでは,パッケージに含まれている client_example.py を オートパイロット の状態で実行します.
% python client_example.py --autopilot
実行すると,エピソード(走行環境)を切り替えながら, オートパイロットで車両が走行をスタートします.
センサーデータの保存
シミュレータ内でセンサーが取得したデータを保存します. ここでは,RGBカメラ,深度カメラ, LiDAR のデータを出力することにします.
py -3.5 client_example.py --autopilot --lidar --images-to-disk
出力されたデータは _out フォルダに保存されます. RGBカメラと深度カメラは PNG形式, LiDARは PLY形式 となっています. PLY形式のファイルはOnline LIDAR point cloud viewerで可視化できます.