Edited at

Intel Edison に ROSをインストール

More than 3 years have passed since last update.


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分くらい待つ。

それが終わったら完了!


参考文献

Official Documentation

About missing repository

About flashing