Intel EdisonにROSをインストールする方法を紹介します。
EdisonにROSをインストールする方法の主流は、Edisonにubilinuxをいれてdebian化をし、その後はRaspberryPiにROSをインストールするのと同様にインストールすることのようです。
しかしながら、ubilinuxは現在スポンサーがいないために手軽に入手はできることができないそう。公式サイト
もうひとつの方法は、Intelから提供されているLinuxを自分でカスタマイズすることです。
しかし、それのやり方はドキュメント化が海外でもされていない!ので、今回はやり方をまとめてみました。
必要環境
Ubuntu 14.04 LTS
40GB以上の空き容量
必要パッケージのインストール
sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib dfu-util
Intel公式サイトからソフトウェア群のダウンロード
cd ~/
wget https://downloadmirror.intel.com/25028/eng/edison-src-ww25.5-15.tgz
tar xvf edison-src-ww25.5-15.tgz
ビルド環境の用意
cd ~/edison-src
mkdir bitbake_download_dir && mkdir bitbake_sstate_dir
./meta-intel-edison/setup.sh --dl_dir=bitbake_download_dir --sstate_dir=bitbake_sstate_dir
前の手順でダウンロードされたレシピの中にひとつだけ壊れたリンクがあるので修正
~/edison-src/out/linux64/poky/meta-intel-iot-middleware/recipes-connectivity/paho-mqtt/paho-mqtt_3.1.bb
SRC_URI = "git://github.com/eclipse/paho.mqtt.c.git;protocol=http \
file://makefile.patch \
"
追加で必要なレポジトリをダウンロード
cd ~/edison-src/meta-intel-edison/
git clone git://git.openembedded.org/openembedded-core
git clone git://git.openembedded.org/meta-openembedded
git clone https://github.com/bmwcarit/meta-ros
cd ~/edison-src/meta-intel-edison/openembedded-core && git checkout dizzy
cd ~/edison-src/meta-intel-edison/meta-openembedded && git checkout dizzy
Edisonのレシピの最後にROSのレシピを追加
~/edison-src/meta-intel-edison/meta-intel-edison-distro/recipes-core/images/edison-image.bb
IMAGE_INSTALL += "roslaunch"
IMAGE_INSTALL += "roscpp-tutorials"
ここには色々なものを追加できる。ROSのビルドファームにあるパッケージのレシピはたくさん用意されているので、必要に応じて追加する。
追加したレシピのパスを追加
BBLAYERSを下の内容に置き換える(usernameはユーザー名に置換した上で)
~/edison-src/out/linux64/build/conf/bblayers.conf
BBLAYERS ?= " \
/home/username/edison-src/out/linux64/poky/meta \
/home/username/edison-src/out/linux64/poky/meta-yocto \
/home/username/edison-src/out/linux64/poky/meta-yocto-bsp \
/home/username/edison-src/meta-intel-edison/meta-intel-edison-bsp \
/home/username/edison-src/meta-intel-edison/meta-intel-edison-distro \
/home/username/edison-src/out/linux64/poky/meta-intel-iot-middleware \
/home/username/edison-src/meta-intel-edison/meta-intel-arduino \
/home/username/edison-src/meta-arduino \
/home/username/edison-src/meta-intel-edison/openembedded-core/meta \
/home/username/edison-src/meta-intel-edison/meta-openembedded/meta-oe \
/home/username/edison-src/meta-intel-edison/meta-openembedded/meta-python \
/home/username/edison-src/meta-intel-edison/meta-openembedded/meta-multimedia \
/home/username/edison-src/meta-intel-edison/meta-ros \
\
"
マシンスペックを有効活用できるようにする
~/edison-src/out/linux64/build/conf/local.conf
BB_NUMBER_THREADS = "4"
PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADSはSSDを持っている場合は12がいいらしい。
PARALLEL_MAKEはスレッド数。
ビルドする
cd ~/edison-src/out/linux64
source poky/oe-init-build-env
bitbake edison-image
数時間くらいかかります。
Edisonにフラッシュするためのスクリプトを修正
修正前
~/edison-src/meta-intel-edison/utils/flash/postBuild.sh(L9)
build_dir=$top_repo_dir/build
修正後
~/edison-src/meta-intel-edison/utils/flash/postBuild.sh(L9)
build_dir=$top_repo_dir/out/linux64/build
フラッシュの準備
cd ~/edison-src/meta-intel-edison/utils/flash
./postBuild.sh
Edisonの準備
Intel Edison Breakout boardならば、下のUSBポートにmicro USB type Bを接続する。
シリアル通信に使う方のポートでない。
この段階ではPCには接続しない。
フラッシュ
cd ~/edison-src/out/linux64/build/toFlash
./flashall.sh
ここでEdisonの接続が求められるので、接続する。そうするとフラッシュが始まるので5分くらい待つ。
それが終わったら完了!