【ハンズオン】道路上の車線を検出してみよう

5/19に勉強会を開催しました。

self-driving-car.connpass.com

勉強会中に作った資料はこちら。

www.slideshare.net

今後も定期的にやっていこうと思います。

Apolloのビルド 5

前回から間が空いたので、まずはアップデートから。

$ git fetch
$ git lfs fetch --all
$ git merge

Dockerの設定を以下にして、

f:id:YasuyukiMiura:20190430220555p:plain

再度ビルドにトライ

$ bash docker/scripts/dev_start.sh
$ bash docker/scripts/dev_into.sh
$ bash apollo.sh build_cpu --local_resources 2048,1.0,1.0
System check passed. Build continue ...
[WARNING] ESD CAN library supplied by ESD Electronics does not exist. If you need ESD CAN, please refer to third_party/can_card_library/esd_can/README.md.
Running build under CPU mode. No GPU is required to run the build.
[INFO] Start building, please wait ...
INFO: Reading 'startup' options from /apollo/tools/bazel.rc: --batch_cpu_scheduling --host_jvm_args=-XX:-UseParallelGC
.
____Loading package: modules/map/tools

…

INFO: (05-01 06:09:48.308) Elapsed time: 24659.801s, Critical Path: 1463.56s
1============================
[ OK ] Build passed!
[INFO] Took 24714 seconds
============================

ビルドできました!さっそく走らせてみます。

$ bash scripts/bootstrap.sh
nohup: appending output to 'nohup.out'
Launched module monitor.
nohup: appending output to 'nohup.out'
Launched module dreamview.
Failed to start Dreamview. Please check /apollo/data/log or /apollo/data/core for more information

なぜか立ち上がりません。ログを見ても要因がちょっと分からなそうなので、走らせるのは断念します。 しばらくしてからソースを更新するか、別環境でやれば動くのだと思います。GPU使わないのが珍しいのは間違いないでしょうから。

Apolloのビルドのきっかけになった、Udacityのコースは一通り視聴しました。Udacityでつくっている自動運転車のシステム構成との大きい違いは地図関連のようでした。コース自体はapolloを題材にした自動運転の概要の説明+Nanodegreeの宣伝で、このコースを観ただけで手を動かすのは難しいものがあります。

Udacityの自動運転車コース勉強会'19/4/28

4/28に開催した勉強会の記録。

  • 1週間の募集で自分含めて3人で開催できた。定期的に開催するのと、告知を早めにする。
  • 会場にしたカフェがそこまで混んでいなかった。長期休暇中だからか、日曜日だからか。電源は限られているが、Fi-Wiは使えるので、もくもく会として使う分には良い場所。
  • Udacityのコースはそこまで有名ではなさそう。
  • 自動運転の技術的な課題とか、インフラとの関係とか改めて問われるとあんまり理解・自分の意見がないと思うところがあった。こういうのは勉強会の効果だと思う。

自分は、GitHub - udacity/CarND-LaneLines-P1: Lane Finding Project for Self-Driving Car NDを進めました。最後まで行き着けませんでしたが、できたところまでの比較動画つくりました。


Udacityの自動運転車コース勉強会'19/4/28の成果

Apolloのビルド 4

昨日の続き。

$ bash apollo.sh build_cpu --local_resources 2048,1.0,1.0

でビルドしていたのですが、以下のようなエラーで終了。

System check passed. Build continue ...
[WARNING] System memory [1.95G] is lower than minimum required memory size [2.0G]. Apollo build could fail.
[WARNING] ESD CAN library supplied by ESD Electronics does not exist. If you need ESD CAN, please refer to third_party/can_card_library/esd_can/README.md.
Running build under CPU mode. No GPU is required to run the build.
[INFO] Start building, please wait ...

…

ERROR: (01-05 15:29:19.282) /apollo/modules/dreamview/backend/simulation_world/BUILD:5:1: C++ compilation of rule '//modules/dreamview/backend/simulation_world:simulation_world_service' failed (Exit 4).
gcc: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
INFO: (01-05 15:29:28.500) Elapsed time: 4699.585s, Critical Path: 745.37s
============================
[ERROR] Build failed!
[INFO] Took 4885 seconds
============================

ググってみると、メモリ不足が原因という記載が見つかります。Dockerの設定を見てみると2.0GiBとなってます。 よくよく、ビルドのメッセージを見ていくと、2GB以上のメモリが必要とあります。 Dockerのメモリ設定を3.0GiBに変更して、再トライします。 なかなか進みませんが、今日はここまで。

Apolloのビルド 3

昨日の続き。

以下コマンドを再度実施。

$ bash docker/scripts/dev_start.sh

すると、以下メッセージ。

[\e[34m\e[1mINFO\e[0m] Start pulling docker image apolloauto/apollo:dev-x86_64-20181210_1500 ...
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[ERROR] Failed to pull docker image.

Dockerが立ち上がっていませんでした。そこで、Dockerを起動して、再度トライする。

$ bash docker/scripts/dev_start.sh
[\e[34m\e[1mINFO\e[0m] Start pulling docker image apolloauto/apollo:dev-x86_64-20181210_1500 ...
dev-x86_64-20181210_1500: Pulling from apolloauto/apollo
…
[\e[32m\e[1m OK \e[0m] Enjoy!

しばらくダウンロードが続いたあと、「Enjoy!」と出たので問題なさそう。 「[\e[32m\e[1m OK \e[0m] 」とかは、色を変えてOKと表示したかったのでしょうが、ターミナルソフトが合っていないため、このように出ているのだと思います。

ビルド手順に従って、進めていきます。

$ bash docker/scripts/dev_into.sh

Docker imageに入ったようで、ターミナルの表示がちょっと変わりました。 続けて、Build modulesです。Noteに従って、Macbook Pro 2012なので、GPUなし、マシンパワー低いの設定で実行。

$ bash apollo.sh build_cpu --local_resources 2048,1.0,1.0

現在、裏で何か頑張っています。続きは明日。

Apolloのビルド 2

昨日に続いて、Apolloのビルドにトライしていきます。

Git LFSインストール前は上手くいかなかった、以下コマンドを試す。

$ bash docker/scripts/dev_start.sh

すると、以下メッセージが。

You need to install and run git-lfs when working with apollo.
New versions of git manage it automotically, but old versions may
need to run `git lfs clone` and `git lfs pull`.

とりあえず、「git lfs clone」を打ってみる。

$ git lfs clone
WARNING: 'git lfs clone' is deprecated and will not be updated
          with new flags from 'git clone'

'git clone' has been updated in upstream Git to have comparable
speeds to 'git lfs clone'.
fatal: You must specify a repository to clone.
…

「git clone」済みなので、動かないのか。それともcloneなので、再度URLを指定する必要があるのか。 とりあえず、「git lfs pull」を打ったら色々とダウンロードが始まった。 続きはまた明日。

Apolloのビルド

ビルド方法のページがあったので、順に従って進めていきます。

dockerが必要となるみたいです。インストール済みか確認する。

$ docker --version
Docker version 18.03.1-ce, build 9ee9f40

以前インストールした事があったよう。

続いて、以下コマンドを動かすように指示があったので、動かしてみる。

$ bash docker/scripts/dev_start.sh

ライセンス確認の後で、以下メッセージがでた。

git-lfs is required to work with apollo.
Check https://git-lfs.github.com for more information.

Git LFS(Git Large File Storage)という大きなバイナリを保存する為の拡張を取り入れる必要があるらしい。 調べて見ると、macOSの場合、brewでインストールできるようになっている。

$ brew install git-lfs

特に問題なくインストールできた。続きはまた明日。