sabo laboratory

備忘録的な技術系ブログです。組み込み、ガジェットなどなどについて書いていきます。

テスラを試乗(予約)する(随時更新予定)

前置き

まだ試乗してません(明日試乗予定)。 予約段階でちょっと思うことあったので、まずは書き下して、後ほど追記します。

動機

来年度には職場が郊外になり、車が必要になりそうです。 なのでせっかくなので色々と試乗してみようと思い、前から興味があったテスラの試乗を予約しました。 テスラの購入には補助金もでるので、うまいタイミングで購入できれば、想像よりコスパがよいです。 初めての車選びでテスラを検討していて、試乗するまで踏み出せていない(ごく限られていそうな)方々の参考になれば幸いです。

テスラの試乗予約をする(WEB予約)

以下サイトから予約が可能です。 最初のページで名前、電話番号など記入して”リクエストを送信”を押します。 その次のページで、試乗場所と予約時間(恐らく空き時間のみが選択肢にでてる?)を選択できます。

www.tesla.com

テスラ営業からの電話を受け取る

試乗予約画面での注意書きにもあるように、しばらくすると営業から電話がかかってきます。私の場合は午前中に予約して、日没後に電話かかってきました。そこで注意事項などを聞いてから予約が完了となあります。

気になったこと(以下、小言です)

ここまで予約は非常にスムーズだと思います(普通のディーラー予約したことないので比較できませんが、今後は他も試したい)。 ただ、予約に躓くことはないけれど、ちょっと困ったり、もやっとした部分について以下書きます。私自身非常に細かいことが気になりやすい質なので、「そんなの普通だよ」と思われるかもしれませんが、同じような質の方の参考になればと思い、記録を残します。

営業(担当)さんからの電話

以下の事項について注意・確認がされました。

  • 車両保険が効かないので、注意して運転して欲しい(自己負担になる、と言われたと思う)
    • →予約直後の案内メールに記述あり
  • コロナ感染予防のため、試乗時に担当者は同乗できない
    • →予約直後の案内メールには記載なし(免許取得2年未満はスタッフによる運転になるが、昨今ではどうなっているか不明)
  • 運転経験について(普段運転するのか)
    • →今は車を持っていないので普段は運転しないと回答(露骨に担当者が「あぁ・・・」不安そうな声になる)
  • 3か月以内の納車を希望しているのか
    • 来年度の引っ越しに合わせて欲しいと回答、なぜ聞いたのかは説明なし(恐らく納車が最大12週後と購入ページにあったので、そのための質問だと思われる)

上記のような事項と合わせて、以下のようなやり取りをしました。

  • 【私】車両保険が効かない旨承知したが、どのような点に気を付けたほうがよいか?
    • 【 テスラ】ホイールを傷つけてしまうことが多い。助手席の人との運転を変わろうとして路肩に寄せたときに縁石にぶつける方がいる。
  • 【私】どのくらいそのような事故が起きているのか?
    • 【テスラ】正確なことはすぐにわからないが月に一度は起きている感覚
  • 【私】運転経験について確認されたが、理由があれば教えてほしい。
    • 【テスラ】試乗中の事故もあるので確認させてもらった
  • 【私】(運転経験について担当者を安心させようと、出張や旅行で車を長距離運転することが多いなど、それなりに運転経験があることをアピール)
    • 【テスラ】(相槌)
    • 【私】(いや、そんなことアピールしても大して意味がないか・・・と冷静になると同時に、もし俺が完全にペーパードライバーだったらどうしたのか?断るという場合もあるのか?と疑問が浮かぶ)

試乗中の事故と運転経験についてかなり担当がナーバスになっている印象でした。 テスラの直前案内のメールでは”車両損害についてはお客様負担”とはっきりと明記されてます(対物・対人保険には加入と記載)。
他ディーラーでの試乗経験がないので詳細は分かりませんが、Googleさんによると当然試乗中の事故は運転手に責任がありますが、事故に伴う補修費などはディーラーによって対応がまちまちなようです。(以下参照)

価格.com - 『試乗車の擦り傷』 スバル レヴォーグ 2014年モデル のクチコミ掲示板

car-me.jp

運転経験について聞かれるのは全然かまわないのですが、不安そうになるわりには、聞いた理由や気を付けて欲しい具体的な点についてはこちらが質問しないと説明がなかったのは、こちらも不安になりました。合理的な判断をすると定評のある(?)テスラさんにしては、そこらへんは予約段階でWEBで案内するなり、Googleフォームでチェックさせるとか、もっとやりかたなかったのかな、と思うところがあります(客層が様々なので対応難しいと思いますが・・・)。 正直、試乗の案内には消極的でネガティブな印象を受けました。

WEB予約の最初の画面

(注:これは本当にしょうもないことです) 前述のWEB予約の最初の画面の決定ボタンが”リクエストを送信”になっています。
私はこの画面を見て「ああ、予約時間とかはWEBで選択できなくて、リクエストを送信後に営業から電話がかかってくるのかな」と思いました。 なので、そのボタンを押した瞬間に予約が確定され、営業と電話して時間や場所を調整しなくちゃいけないのか、とちょっとためらいました。 私、電話苦手ですし、試乗予約の空き状況もわからない中で調整しなくちゃいけないのか・・・とナーバスに。

まあ、前述のように”リクエストを送信”ボタンを押すと、次のページで予約可能な場所と時間が案内されるわけですが・・・いや、最初からそっちも見せてよ・・・と。

f:id:sabo_321:20211009225759p:plain

試乗楽しみ(ひとつまみの不安と共に)

とにかく予約はできたので試乗してきます。
借り物を運転するので、当然慎重に丁寧に扱いますが、担当さん以上に私も不安です。 多分、それはもう不安そうに店頭から見送られるんだろなぁ・・・(被害妄想)

raspberry pi zero wにtensorflow+Kerasを導入

raspberry zero w

ようやく市場への供給が進んで手に入るようになった。 秋葉原秋月電子でケースとセットで2500円くらいで入手。 なんだか思ってたより高いけど、今回はこれに機械学習の推論をさせることを目指して遊んでみる。

raspberry pi zero SETUP

raspberry pi zero にraspbian stretchを導入する。 最初はRaspbian-stretch-liteで進めようとしたが、どうもWiFiの設定がうまくいかなかったので、素直にstretch-desktopを選んだ。

インストールしたRaspbianのバージョンは以下の通り。

www.raspberrypi.org

Raspbian Stretch with desktop
Image with desktop based on Debian Stretch
Version: April 2019
Release date: 2019-04-08
Kernel version: 4.14
Release notes: Link

USB接続でインストールを済ませるため、以下のサイトを参考にさせていただいた。

www.daipanman.com

参考サイト先とやや違う作業はWiFiの設定。rasp-configで進めた。

pi@raspberrypi:~$ sudo raspi-config

Install Tensorflow

以下のサイトを参考にさせていただき、導入を進めた。

ken5owata.hatenablog.com

qiita.com

まずメモリ不足に対応するため、スワップサイズを拡張する。

pi@raspberrypi:~$ sudo vi /etc/dphys-swapfile

CONF_SWAPSIZE=2048

pi@raspberrypi:~$ sudo /etc/init.d/dphys-swapfile restart

次に必要な環境を準備する。 以下パッケージを導入する。

pi@raspberrypi:~$ sudo apt-get install -y libhdf5-dev
pi@raspberrypi:~$ sudo pip install h5py

最後にTensroflowを導入する。 ラズパイ向けのTensorflowを提供している下記サイトから、pipでインストール可能なファイルをダウンロードしてくる。 とりあえず安定板の1.12を選択。cp27のarmv6lを選んでダウンロードする。

Links for tensorflow https://www.piwheels.org/simple/tensorflow/

pi@raspberrypi:~$ wget https://www.piwheels.org/simple/tensorflow/tensorflow-1.12.0-cp27-none-linux_armv6l.whl

ようやくtensorflowをインストール。結構時間がかかる(大体1~2時間ぐらい?)

pi@raspberrypi:~$ sudo pip install tensorflow-1.12.0-cp27-none-linux_armv6l.whl

簡単に動作を確認しておく。 pythonを起動して、tensorflowをインポートしてエラーが起きなければたぶん大丈夫。

pi@raspberrypi:~$ python
>import tensorflow as tf
>

install Keras

Kerasを導入する。 Tensorflowの流れで導入しようとするとエラー発生。

なので、以下のサイトを参考に、関連パッケージを導入。 そのあとにKerasを導入。

qiita.com

pi@raspberrypi:~$ sudo apt-get install python-h5py
pi@raspberrypi:~$ sudo apt-get install python-scipy

pi@raspberrypi:~$ sudo pip install keras

Kerasの公式ドキュメントからサンプルを試す。 ResNet50のモデルを試してみる。 認識させる画像は自分で用意する必要がある。

keras.io

pi@raspberrypi:~$ nano vgg16.py

from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np

model = ResNet50(weights='imagenet')

img_path = 'elephant.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])

pi@raspberrypi:~$ python vgg16.py

とりあえずサンプル通りの出力が得られた。 model.predict(x)を実行して予測結果が得られるまでに大体十数秒かかる。 まだ試していないが、カメラの映像がからリアルタイムで認識させるのには、ラズパイゼロとこのモデルでは厳しそう。

次はもう少し軽量のNASNetMobileを試そうとしたが、なんだかうまくいっていないのでまた今度試してみる。

Raspberry Pi にUbuntuを入れてROSを動かす

Raspberry Pi 2

ラズベリーパイ2が(とっくに前だが)ついに出た! 今回はかなりパワーアップして、さらにWindows10とUbuntuに公式に対応するとのことで、ぜひとも試してみたい! なにに使うのかという問題はさておいて・・・

Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)-Physical Computing Lab

まあ、ともあれ、Ubuntuが入るとなると、今まで慣れ親しんだことがいろいろできそう。 今回はラズパイにUbuntu14.04を入れて、何かと話題?なROS(Robot Operation System)を入れてみようと思う。 ROSについては、以下を参照。 ROSがラズパイサイズのコンピュータで動くとなれば、ロボットの可能性が大きく広がる!

Ubuntu 14.04

ラズパイへのUbuntuのインストール方法については、英語だが公式で解説がされているので、基本的にその記述に則ってやっていけば問題ない。 Qiitaにも投稿があったので、そちらも併用して参考にすれば、すんなりインストールできるだろう。

イメージをダウンロードしたあとは、下記サイトのようなSDカードへの書き込みソフトを利用して、データを書き込む。

そのあとは、Ubuntuの公式サイトの”Usage”の部分にしたがって進めていけば良い。

多少気をつける部分として、ユーザー名とパスワードは初期状態では下記のようになっている。

user:ubuntu
password:ubuntu

また、”Usage”の一番最初のコマンドのあとには、一度再起動しておいたほうが、無難だろう。

sudo fdisk /dev/mmcblk0
#一度再起動させる
sudo reboot

sudo resize2fs /dev/mmcblk0p2
sudo apt-get install linux-firmware

Ubuntuのデスクトップ環境(Xubuntu、Lubuntu、Kubuntu)については、もちろん個人の好みで構わないが、私の場合はLubuntuを選択した。 それぞれの違いにつては、下記サイトを参考のこと。

GLXエラー

Ubuntuを動かしていると途中でGLXエラーに遭遇した。 正確に言えば、この後のROSを動かしている途中で遭遇したが、対処はUbuntu導入直後にしておいたほうが良さそうなので、ここに記述。 エラーの内容については、以下のサイトと同じようなもの。

OpenGLの動作を確かめるために、glxinfoコマンドを実行してもエラーでる。

$ glxinfo
name of display: :0
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

対策のために、xserver-orgを再インストールする。

下記コマンドを実行。

sudo apt-get install xserver-xorg-video-fbturbo

ただ、このコマンド、よくよく見てみると、最初のUbuntuの公式インストールガイドにもちゃんと載っていたコマンドで、 今回のエラーについては、私が単純に手順をすっ飛ばしていたことが原因っぽい・・・。

なにはともあれ、これでUbuntuの動作環境は整った。

ROSのインストール

ROSも公式でラズパイ2の動作を確認している。インストールについては下記サイトを参照のこと。

上記のサイトはARMマイコン向けのROSインストール方法なのだが、私はこのことを知らなくて、普通にUbuntu向けのインストール手順を踏んだ。 標準Ubuntu向けのインストール手順は以下の通り。

それでも問題なく動いている。ARM向けでは、最小限の構成でインストールしてくれるみたいだが、SDカードが16GB以上あれば、フルパッケージでもへっちゃらだと思う。

とりあえず、これでラズパイでROSを動かすことができた。 ROSはノードと呼ばれる、アプリケーションの塊を、お互いにデータを通信させることで、複雑な動作を実現している。

この構成のおかげで、特定のノードを別のハードウェア上で動かしていても、通信さえできれば、全体を動作させることができる。

つまり、複数のラズパイを組み合わせることで、スパコンのような構成で、アプリケーションを動作させることも可能である。

次にやることリスト

ラズベリーパイでのUbuntu、ROSの動作が確認できたので、以下のことをやっていきたい。

  • PTAMの動作テスト
  • その他VisualSlamの動作テスト(ORB-SLAM)
  • ROSを利用したモータ制御
  • 旧ラズパイにもROSを導入(RaspbianOS上でもROSを動かす)
  • ラズパイ2つでROSのノード通信機能を使って負荷分散&協調制御

といっても、実は上二つはすでに動作を確認済み。 ただし、実時間で動かくことはやはりかなり厳しそう・・・。 VisualSlamがラズパイ上で動くなら、ロボットへの応用の幅がかなり広がるかなーと思っていたが。。。 まだまだ厳しそう。

【Apple】いまさらだけど新しいMacBook(12インチ)を半年使ったレビュー

MacBook

去年の2015年7月に12インチの新しいMacBookを購入した。 迷いに迷って買った。 半年ほど使い込んだ感想として、やはり人を選ぶパソコンだ。 しかし、用途にしっかりハマれば、必ず満足できる製品だ。 今更だが、半年使ってみた感想を書いてみる。

APPLE MacBook (1.1GHzデュアルコア Intel CoreMプロセッサ/12型/8GB/256GB/USB-C/ゴールド) MK4M2J/A

MacBookを選んだ理由

まず私の購入前の状況と動機は以下のとおり。

  • メインPCはWindowsMacは使ったことがない。
  • iPhone5iPadiPad miniを所有。
  • Linuxはある程度慣れており、UbuntuCentOSを利用した経験あり。
  • 自宅から長時間離れることがよくあり、持ち運びできるノートPCが欲しかった。
  • 欲を言えば高スペックが欲しいが、優先されるのは軽さ。
  • 写真編集がしたかったので、画面は綺麗なほうがいい。
  • アプリ開発、コードの編集など、ある程度開発用として使えるパソコンが欲しかった。

MacBookを選んだ理由は以下のとおり。

  • 軽さと薄さ(持ち運びやすさ:920g)
  • 画面の美しさと大きさ(Retinaディスプレイ
  • 外観・見た目
  • 開発用途でもそこそこ動くスペック(標準でメモリ8GB、SSD容量256GB)
  • トラックパッド

最後までMacBookを選ぼうかどうか悩んだ理由、さらに使ってみて気づいた欠点は以下の通り。

  • 処理能力不足(CPUは1.1GHz)
  • 価格(標準で148800円[税別])
  • 発熱
  • 拡張性

軽さと薄さ

これはもう申し分ない。 920gは十分軽いが、最近のノートPCの中では一番軽いわけではない。 だが、その薄さも伴って、持ち運びの際に苦になることはほとんどない。

どこにでも気軽に持ち運べるというのは、非常に大きなアドバンテージだ。 常に持ち歩いても気ならないし、どこでもPCを開いて作業できることで、活動の幅が大きく広がる。

私はリュックに入れて持ち運んでいる。 背中に背負うと、その重さはほとんど感じない。

持ち運びの際には、以下のケースに入れている。 これが、MacBookとの相性が非常に良い。 正直なところ、このケースがないと傷が怖くてMacBookを持ち歩けない。 このケースがあるからこそ、安心して持ち運べるし、逆にいうと心配性の人にとってはケースも含めてMacBookという形になるだろう。

このケースの良い点は、ケースの開閉部分がマグネットになっていることだ。 ケースの難点は、出し入れのめんどくささだが、マグネットのおかげでそこに苦を感じることはない。 もう一つの利点は、このケースをMacBookの下敷きとして利用できる点だ。MacBookは結構発熱するので、膝にのせて作業する際は、このケースは割りと重要になる。

Inateck 13.3インチ超薄型スリーブケース Macbook Air/ MacBook Pro Retina/ウルトラブック/ネットブック用 プロテクターケース 小物収納ポケット付

画面の大きさと美しさ

これはもう店頭でMacBookAirと見比べて貰えば一目瞭然だ。 私は最初MacBookAirを買う気まんまんだった。だが、店頭でその画面を比較して愕然とした。両者を比較してしまうと、MacBookAirの画面はノイズがかかったように見えてしまうのだ。

さらに言うと、MacBookは画面の解像度が2,304 x 1,440ピクセルとなっており、単純に作業領域が大きくなる。 画面が大きく、更には高解像度のため文句の付け所がない。

外観・見た目

またもやこれも店頭でMacBookAirなどと比べると一目瞭然。 カラーの展開も含めて、その見た目に惚れる人も多いだろう。というか見た目特化のPCであることは否めない。 (あるいみ、見た目重視すぎて、そぎ落としすぎのデメリットもある)

開発用とでもそこそこ動くスペック

持ち運び用として、かつある程度価格を抑えるために、スペックを犠牲にすることは仕方ないと諦めていた。 ただ、実際に使ってみると、ある程度は動いてくれる。 ネットは当たり前に快適に動くし、写真の閲覧やテキスト入力などの面では全く問題ない。

ただし、コードのコンパイルXcodeを動作させる場合、Lightroomでの写真編集は、やはり辛いところがある。 私がよく使うのはLightroomだ。高スペックのPCと比較すると、若干もっさりしてしまうが、とんでもなくイライラすることは少ない。 私の場合、旅行などの出先で撮った写真を、ホテルですぐに編集しておきたいときに重宝しているが、数枚の加工ならばすぐに済ませてしまえる。

Adobe Photoshop Lightroom 6 日本語版 Windows/Macintosh版

あとはVirtualBoxUbuntuを動かしてみているが、やはり快適には動作しない。 ターミナルの入力の際にももたつきを感じるので、OSXLinuxを並列に動かしてスイッチングする、というような用途は難しいだろう。 少しLinux環境での動作テストや、勉強のためにUbuntuが動く環境を用意しておくなどの用途には十分耐えられる動作だ。

トラックパッド

これはMacBookを初めて購入する人間は誰しも口をそろえてトラックパッドを褒め称えるので、今更私が言及するのも何だが、やっぱり素晴らしい。 MacBookでは初めて感圧式を採用しており、クリック感は内部のモーターで再現されて指先にフィードバックされる。 この感圧式は非常に使いやすい。

MacBookAirなど、トラックパッド全体がスイッチのようになっている場合、クリックするとトラックパッド全体が沈みこむ感じで、指先がふわふわして安定しない感じがあった。しかし、感圧式では、実際にはトラックパッドが沈みこむことなく、そのクリック感だけが指先に伝わってくるので、非常に安定した感じがある。

これは感覚の問題でおあるので、使いやすいと感じるかどうかは個人差があるかもしれないが、私の場合にはこのトラックパッドのおかげで、カーソル操作が非常に正確になったように思える。

あとは”強く押しこむ”ことで、さらに普通のクリックとは別操作が可能である。さらに指を複数本使ったマルチタッチでの”強く押しこむ”も感知できるので、操作の幅が大きくひろがる。 これは自分でカスタマイズを行うことで、非常に強力な機能となる。

MacBookユーザにはお馴染みだが、トラックパッド上での動作を各種アプリケーションでの動作に割り当てる”BetterTouchPad”を使う。 BetterTouchPadでは、”強く押しこむ”にも対応している。 私の場合は、ブラウジングの操作において、”新しいタブで開く”を二本指をリンク上で強く押しこむことで行うように設定している。 また、通常のデスクトップで、指4本を強く押しこむことで、ターミナルを開くように設定している。

これ超便利!

処理能力不足

これは前述したが、カスタマイズなしのCPUではやはりスペック不足は否めない。 ただ、それは高負荷なゲームや編集ソフトを使う場合の問題である。

MacBookはなんでもこなせるノートPCには成り得ないだろう。あくまで、外出先でも使えるサブ機にとどまる。 なので、ゲームもリッチなアプリ開発も行えるメインPCを求めている人には合わないだろう。

価格

これは高く感じるかどうかは個人差があるかもしれない。 MacBookAirと比較すると、割高な気もするが、SSDとメモリのスペックを考えると、意外とそこまで高いわけでもない。 MacBookAirのメモリを4GB→8GB、SSDを128GB→256GBに変更した場合の価格を比較して見る。 ついでにMacBookPro(SSD256GB,メモリ8GB)も並べて比較する。

バージョン 画面サイズ 値段 CPU
MacBook Air 11inch ¥138,800 1.6GHz IntelCore i5
MacBook Air 13inch ¥172,800 1.6GHz IntelCore i5
新しいMacBook 12inch ¥148,800 1.1GHz IntelCore M
MacBook Pro 13inch ¥178,800 2.3GHz IntelCore i5

こうやって比べてみると、MacBook(12インチ)のRetina画面とSSDとメモリのスペックを考えると、他のシリーズと比べてもそこまで高いわけでもない、 正直、容量は256GBないと厳しい。またメモリも8GBはほぼ必須だ。 そう考える、どのMacBookを買うかどうかは、画面とCPU性能と重さの問題になる。

どのMacBookを選ぶかとしたら、だいたい以下の様な基準になるだろう。

  • 11inch(Air): とにかく小さくて持ち運びやすく、CPUもそこそこ動くのが欲しい。画面の大きさ気にしない。
  • 13inch(Air): 解像度は気にしないが、画面が大きくて持ち運びやすく、CPUも能力が高いのが欲しい。
  • 12inch : 高解像度の画面が欲しくて、持ち運びやすいのが欲しい。CPUの能力はさほど重要でない。
  • 13inch(Pro): 高解像度の画面が欲しくて、持ち運びはあまりしない(重くても大丈夫)。CPUの能力が一番大事。
バージョン 画面 携帯性 CPU性能
MacBooc Air 11inch
MacBooc Air 13inch
新しいMacBooc 12inch
MacBooc Pro 13inch

発熱

MacBookの一番のネックを上げるならば、発熱だろう。 MacBookではファンレスを採用したため、非常に動作が静かで、iPadのような感覚で扱うことができる。 その分、熱を逃がす方法が本体のアルミ筐体からしかないので、高負荷な動作をさせると本体底が非常に熱くなる。

その熱さは一番高負荷な処理をさせている場合には、生身の膝の上には絶対に置けないぐらいである。 なので、短パンでMacBookを膝の上において扱うのはおすすめしない。

そのため、前述したがひざ上で作業する場合には、ケースを下敷きとしておいている。 また、発熱を管理するために、”Macs Fan Contorl”という駐在アプリを導入して、あまりも高温になっていないか監視するようにしている。

拡張性

発売前から話題になっていた、USB-Cポートが一つのみという設計。 できれば2つ付けて欲しかった。なんなら、イヤホンジャックをなくして、その場所につけてくれよと思うぐらい。

ただし、正直USBを頻繁に使うことはないので、そこまで苦労しない。 充電についても、バッテリーが非常に長くもつので、充電しながらUSBも繋げたいという場面は、正直あまりない。

ただ、下記のUSB-CからUSB-Aへの変換アダプタは必須だろう。

総評

どこにでも持ち運べるサブノートPCを探していて、かつMacBookのデザインに一目惚れしたならば、MacBook(12インチ)は買いだろう。 逆に、メインで使えるノートPCを探していて、持ち運びは気合でなんとかする場合には、MacBookProが良いだろう。ただ、その場合SSDとメモリをMacBook(12インチ)と同等にする場合には、多少値が張ることになる。

さくっとPTAMをROSで試す(3)・・・USBカメラで撮影する

前回の記事

sabo.hatenablog.com

sabo.hatenablog.com

前回、USBカメラの接続を確認したが、うまく映像をPTAMで利用できなかった。 今回はPTAMで映像を利用できるようにする。

環境

  • ホストOS:Windows10
  • ゲストOS:Ubuntu14.04
  • VirtualBoxバージョン:5.0.12
  • 使うカメラ

問題究明

どうやらカラー画像なのが問題そう。 カメラから得られる映像"/cv_camera/image_raw"を、モノクロ画像へと変換して接続してみる。

上記サイトを参考に、/cv_cameraから出力されるimage_rawを、image_procを使ってimage_monoへ変換する。

まず画像を変換するためのimage_procを起動。 cv_cameraのノードで利用するため、ネームスペースを指定する。

rosrun cv_camera cv_camera_node
ROS_NAMESPACE=/cv_camera rosrun image_proc image_proc

PTAMのlaunchファイルも、この変更に合わせる。 "/cv_camera/image_raw"を"/cv_camera/image_mono"に変更する。

<remap from="image" to="$(openenv IMAGE /cv_camera/image_mono)" />

PTAMの起動。

roslaunch ptam ptam.launch

各ノードを起動して接続した状態が下の図。

f:id:sabo_321:20160120210808p:plain

PTAMの動作を確認

f:id:sabo_321:20160120214707p:plain f:id:sabo_321:20160120214709p:plain f:id:sabo_321:20160120214711p:plain

いい感じ!

さくっとPTAMをROSで試す(2)・・・USBカメラを接続する

前回の記事

sabo.hatenablog.com

実際にカメラを接続して、PTAMを利用してみる。

カメラは広角の方が良いらしい。広角の分、広い範囲を撮影でき、多くの特徴をトラックできるからだと思われる。

使ったカメラはこちら。

環境

  • ホストOS:Windows10
  • ゲストOS:Ubuntu14.04
  • VirtualBoxバージョン:5.0.12

VirtualBoxの設定

VirtualBoxにExtension Packを導入。

ゲストOS側での設定

ゲストOSを起動して、VirtualBoxのタブより”デバイス”→”WEBカメラ”から、接続したカメラを選択する。

ROSの設定

下記サイトを参考。

sudo apt-get install ros-indigo-cv-camera

動作を確認。下記コマンドはそれぞれ別ターミナルで実行。(source devel/setup.shも忘れずに)

rosrun cv_camera cv_camera_node
rosrun image_view image_view image:=/cv_camera/image_raw

これでカメラの映像が取り込めていることが確認できる。 とりあえずROSのPTAMに映像を流し込んでみる。

まず、PTAMのlaunchファイルをいじる。

cd ~/catkin_ws/src/ethzasl_ptam/ptam/launch
nano ptam.launch

以下の記述を修正(cv_cameraの記述)

<remap from="image" to="$(openenv IMAGE /cv_camera/image_raw)" />

これで、PTAMとcv_cameraを接続できる。 起動してテストしてみる。

rosrun cv_camera cv_camera_node
roslaunch ptam ptam.launch

ノードの接続を確認してみる。

rosrun rqt_graph rqt_graph

f:id:sabo_321:20160116164050p:plain

しかし、カメラの画像データ形式が違うのか、うまく表示されない。

f:id:sabo_321:20160116164145p:plain

次の記事

sabo.hatenablog.com

さくっとPTAMをROSで試す(1)・・・サンプルデータでPTAMを試す

PTAMについて


Parallel Tracking and Mapping for Small AR Workspaces (PTAM) - extra

カメラの映像から、カメラの動きを推定する技術。 ノンマーカーARの技術に分類され、主に拡張現実(AR)に用いられる。

この技術が使えると、普通に撮影した映像に対して、 3Dキャラクターを配置したり、3次元空間にぴったり貼り付けるように情報を表示できる。

インストール環境

  • Windows10 64bit

Ubuntu14.04のイメージディスク入手

VirtualBoxのインストール

  • Downloads – Oracle VM VirtualBox
    https://www.virtualbox.org/wiki/Downloads

  • メモリは多めに確保。大体4GB

  • HDD容量も多めに。デフォルト8GBだと、ROSがインストールできない。大体20GB以上。

  • CPUコア数は必ず2以上にする。コア数が1の場合、ROSなどのコンパイルでつまずくことがある。

  • コア数はVirtualBox仮想マシン一覧画面で、対象のUbuntuを選択して、”システム→プロセッサー”から変更

  • ubuntuをインストールする。このとき、最新のアップデートを適用する。

ROSのインストール

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-indigo-desktop-full
sudo apt-get install ros-indigo-desktop
sudo apt-get install ros-indigo-ros-base
sudo rosdep init
rosdep update
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall

パーミッションの変更

sudo chown -R [user名] ~/.ros
mkdir -r ~/catkin_ws/src
catkin_ws_init

ここでなぜかcatkin_ws_initコマンドが見つからない問題が発生。 とりあえず、ゲストOSと共にホストOSのWindowsも併せて再起動させたところ解決。 おそらく、VirtualBox自体をインストールした後、再起動させていなかったので、それが原因?

PTAM-ROSのインストール

関連パッケージをインストール。

sudo apt-get install git freeglut3-dev liblapacke-dev liblapack-dev liblapack3 libopenblas-base libopenblas-dev
cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/ethzasl_ptam
cd ..
catkin_make
cd ~/catkin_ws
source devel/setup.sh

もし一度でうまくmakeが通らないようであれば、何回か試行することで成功することがある。 このとき、VirtualBoxで動かしている仮想OSへのCPUコア数の割り当てが1の場合、makeが失敗する。

PTAMを動かしてみる

ROSで新しいターミナルで作業する場合には、以下の操作が毎回必要。

cd ~/catkin_ws
source devel/setup.sh

PTAMを起動する。 それぞれ別のターミナルで起動する。

roslaunch ptam ptam.launch 
rosrun rqt_reconfigure rqt_reconfigure 

ROSで起動されたノードの一覧を確認する。

rosrun rqt_graph rqt_graph

チュートリアルで提供されているサンプル動画とカメラファイルを使って動作をテストする。 ethzasl_ptam/Tutorials/using_ethzasl_ptamで、サンプルのdatasetをダウンロードする。 解凍したZIP内のパラメータファイルをコピーする。

unzip ethzasl_ptam_desktop_sample.zip
cd ~/catkin_ws/src/ethzasl_ptam/ptam/
mv PtamFixParams.yaml PtamFixParams-old.yaml
mv (解凍したZIPファイル内の)PtamFixParams.yaml .

梱包されていたbagファイルを利用して、映像をPTAMで利用する。 bagファイルの扱い方については、以下を参照。

下記コマンドで、bagファイルの中身を参照できる。

rosbag info ethzasl_ptam_desktop_sample.bag

下記コマンドで、PTAMで映像を利用する。

rosbag play ethzasl_ptam_desktop_sample.bag

f:id:sabo_321:20160116130428p:plain

これでとりあえず、ローカルのbagファイルに対して動作を確認! あとは、自分で撮影した動画データや、接続したカメラで利用する方法を探すだけ・・・

次の記事

sabo.hatenablog.com