ARM上のROS Indigoというかffmpegでドハマりした話

機械学習(CNN)をエッジとクラウドで分散させる処理の検証を行なう際、エッジ側のマシンをリソースが貧弱なもので評価するため、Raspberry Pi 2/3/ZeroにROS Indigoをインストールして動作させることを試みました。

Raspberry Pi自体にUbuntu 14.04をインストールする作業それ自体が一つの記事になるボリュームでしたが、それは本題ではないのでここでは割愛。ROS Indigoもインストールが完了して検証アプリを動かしたところ、カメラからの画像は表示されず、一方でターミナルには

[swscaler @ 0xXXXXXXXX] No accelerated colorspace conversion found from yuv422p to bgr24

という行がひたすら出力され続けています。検証アプリはROS Indigoのusb_camモジュールが利用されていたので、/dev/video0が存在することを再確認した上で

$ roslaunch usb_cam usb_cam-test.launch

でusb_camモジュールの動作を見てみましたが、こちらは特に問題なくウィンドウにウェブカムからの動画が表示されます。上述のメッセージでググってみても原因はイマイチ判然としません。

“ARM上のROS Indigoというかffmpegでドハマりした話” の続きを読む

Intel JouleでROS Indigoを使えるようにする

最近Intel JouleがデフォルトでUbuntuに対応しましたが、バージョンが14.04ではなく16.04です。ROSで情報量の多いIndigoを利用するには、何らかの手段で14.04をインストールする必要があります。内蔵eMMCは16.04用に残しておいて、14.04は外部ストレージに入れることにしましょう。

Intel JouleにはmicroSDのスロットがありますが、これは低速のため使えません。そこで、USB 3.0対応のSDカードリーダを利用することにします。USB 3.0に対応したセルフパワーのハブも用意しましょう。以下、Intel Jouleは最新のBIOSに更新済みでUbuntu 16.04が導入済みであるものとします。

手順はいくつかのサイトにまとめられていますが、細かいポイントが微妙に異なっていましたので、そこを重点的に記載しておきます。

“Intel JouleでROS Indigoを使えるようにする” の続きを読む

Jetson TX1にROS Kineticをインストールする

Jetson TX1に最新のJetPackをインストールしますと、OSはUbuntu Linux 16.04 LTSになります。現時点で情報の多いROSのバージョンはIndigoですが、ここは16.04に対応したKineticをインストールしてみましょう。

インストール手順はROSの公式Wikiにある通りですので再掲はしません。推奨されるros-kinetic-desktop-fullパッケージをインストールすると2GBほどになりますが、Jetson TX1内蔵のeMMCは容量があまり大きくないので、USB SSD等から起動できるようにしておくと安心です。

一点、Jetson TX1でこのWikiの通りに進めると、sudo rosdep initを実行した際にエラーになります。その時は

$ sudo c_rehash /etc/ssl/certs/

を実行すればOKです。