2014/02/10

PCLの PCD フォーマットにおけるbinary_compressed

Point Cloud Library (PCL)のデータフォーマットであるPCDでは,各ポイントのデータをアスキー文字列で保存する形式 (ascii) と,バイナリで保存する形式 (binary) があって,これはドキュメントに載っているのだけれども,実はもう一つ,バイナリを圧縮した binary_compressed というのがある.でも,これは(なぜか)ドキュメントには載ってない,のでここでちょっとメモ.

PCL から binary_compressed なデータを書き出すのは pcl::PCDWriter::writeBinaryCompressed 関数を使う.ソースコードは この辺

ここでポイントは,

  • データ部分の最初の4バイトは unsigned int の圧縮後のデータサイズ
  • 次の4バイトは unsigned int の圧縮前のデータサイズ
  • 次は LZF 圧縮されたバイナリデータ.ただし,データはポイントごとに並べたのではなくて,フィールドごとに並べたもの.(例えば,XYZXYZXYZ...ではなくて,XXX...YYY...ZZZのように)

LZF 圧縮に関しては,ハッシュテーブルあたりで微妙にオリジナルと違うのだけれども,この辺がどう影響するかは未確認..

2014/02/02

R cheat sheet

データ

combine function c()

>  sample <- c(6, 7, 15, 36, 39, 40, 41, 43, 47, 49)
  [1] 6 7 15 36 39 40 41 43 47 49

: operator

> sample <- 1:10
  [1] 1 2 3 4 5 6 7 8 9 10

seq() function

> sample <- seq(0, 100, by=10)
  [1] 0 10 20 30 40 50 60 70 80 90 100

CSVからインポート

> sample <- read.csv('data.csv', header=TRUE, sep=",")

ディレクトリ

カレントディレクトリを表示
> getwd()
ディレクトリを移動
> setwd(dir)
カレントディレクトリ内のファイル,フォルダを表示
> dir()

関数

ライブラリをロード

> library('qualityTools')
> showClass('gageRR')
> example('gageRR')

スクリプトを実行

> source("script.R")

Vector データ関連

  • length(v): Vector の要素数
  • mean(v) : Vector の平均
  • median(v) : Vector の中央値
  • sd(v): 標本標準偏差 (unbiased)
  • var(v): 標本分散 (unbiased)
  • summary(v): 最小値,第一四分位数,中央値,平均値,第三四分位数,最大値を表示 Minitab との違い (Minitab はwikipediaの説明における Method 1, R のsummary は Method2)
  • fivenum(v): Tukey's five number を vector として返す.

2014/01/26

休暇

年末年始は休暇で日本でした.以下いろいろやったことリスト,など.

  • 大昔にご近所さんだったO家とディナー.(昔過ぎて懐かしさはあんまり..笑)
  • 高校サッカー全国大会,桐光学園-高知商業@三ツ沢競技場を観戦
  • ミラーレス一眼 SONY NEX-5TLを購入
  • 川崎大師に初詣.初詣って,出店がでるんだね.
  • 高校の部活の同期で初蹴り@代々木.
  • 親戚に会いに関西方面へ.約束までに時間があったから,大阪城見学.結構外国人の見学者も多かった.博物館としては,,もうちょっと頑張ってくれても..
  • サカサマのパテマを鑑賞.舞台設定の部分とか,中途半端に感じてしまうところもあったけど,面白かったと思う.CVの一人が昔のバイト先で一緒だったという噂もあるのだけど,誰も確認できなかったので詳細は不明.というか,僕が見た次の回で本人来てたのか.
  • "大泉エッセイ"読了.どこの本屋に行っても平積みでした.
  • "孤独なバッタが群れるとき"読了.バッタ博士の今後にも注目.
その他友達と会ったり,積読がまったく消化できないくらい,遊び呆けてた..

2013/11/02

Blender で,カメラから見て常に同じ位置にオブジェクトがくるようにする.

やりたいこと

blender を使っていて,常に端っこに座標軸を表示させたい.

事前準備

シリンダーと円錐で矢印を作って,座標軸のオブジェクトを作っておく.

手順

  1. 座標軸に,Limit Rotationの拘束を加える.(Limit X, Limit Y, Limit Z)
  2. Add -> Armature -> Single Bone でboneを追加. Bone に Copy location の Constraint を付加.Target はカメラ. 更に,Copy Rotation のConstraint も付加.Target はカメラ.
  3. カメラに ChiledOf の Constraint を付加.Target は先程のArmature.Boneも指定. チェックはすべて外す.
  4. Editor mode で.tail の位置を座標系に合わせる. 座標軸 -> Armature の順に選択して Ctrl-P で Bone を選択. 座標軸位置をカメラビューで端っこの方に来るように移動させる.
これで,カメラを移動させても,座標軸オブジェクトはカメラの動きに追従するので,カメラビューで常に同じ位置に見えるようになる. 座標軸は,カメラの近くに置いておくと,他のobjectsに隠れたりしない.

結果

Blender キーボードショートカット

Object Mode

a Select/deselect all objects
Alt-g Clear location of selected objects
Alt-r Clear rotation of selected objects
Ctrl-j 選択したオブジェクトを join
Ctrl-d 選択したオブジェクトを duplicate

Edit Mode

e Bezier curve編集時,コントロールポイントを追加

2013/09/22

ハードコンタクトレンズ買った

最近の買ったものシリーズ

きっかけ

日本で買ったハードコンタクトが古くなったし,度も微妙にあわなくなっていたので.

ドイツでは,コンタクトレンズを買うのには眼科医の処方箋が要らないので,インターネットやメガネ屋さん的なところにいけば買える. 必要な度数とかがわかっていればそのままそれで注文できるし,わからなくても調べてもらえる. (もちろん眼科でも検眼してもらえるみたいだけど,今回は眼科ではやってもらわなかったので詳細は不明)

で,最初はわりと近所の Apollo に行ってみたら,そこではコンタクトレンズのための検眼その他は出来なくて, Neuhauser Str. のほうなら対応できるとのことだったので,そちらにいくことに.この時ついでにハードレンズとソフトレンズどっちがいいかを聞いてみたら, 僕のかけていたメガネの度数を調べたら,一言,"ハードだね".

購入まで

最初の行ったときは,時間帯が悪かったのか,土曜日の朝にまた来てくれ,と言われた. で,また指定された時間に行って,検眼してもらって,テストレンズ(両目で40ユーロ)を注文することに.

後日,テストレンズを受け取ってその場で装着.2時間後に簡単な検査.ちょっと度数を調整して,レンズの注文. 乱視が少しあって,でも乱視矯正用のレンズ(一枚200ユーロ +)にするか普通のレンズ(一枚89ユーロ)にするか,微妙なところだったので, とりあえず普通のレンズを注文.

数日後また注文したレンズを受け取りに.その場で装着して,2時間後にまた簡単な検査.一週間後にまた検査. このとき,右目は乱視矯正用がいいかもしれない,と言われたけど,まぁ,あんまり不便はなかったので,(高いし)そのまま普通のレンズで行く事に. ただし,この場合は差額を払えば良かった模様.あと,購入後2ヶ月までなら,度数の調整含めて対応してくれるとのこと.

コンタクトレンズそのものは1.5 - 2 年使用できるとのこと.

ケア用品その他

ドイツでは,意外にハードコンタクトレンズ用のケア用品が,ソフトに比べると見つけにくい.dm とか行っても見ないし. まぁ,当然売ってはいるわけのだけども.ということで,Apollo で購入.All-in-One 的なものは売ってなくて,洗浄剤(Cleaner)と,保存液(Conditioner)を別々に使う. 場合によっては,すすぎや一時保存用に Saline を使う.ケースは,日本で見るようなハード専用ではなく,ソフトレンズと同じタイプ.

2013/09/15

車買った

最近車を買ったのでメモ.

きっかけ

年初に地下ガレージのあるアパートに引っ越して,さらに友人Nが車を売ることを考えてたので,ちょうどいいやということで. BMWの1シリーズのハッチバック,ディーゼル,MT.

免許証

免許証自体は,2011年に日本の免許証からドイツの免許証に書き換え済み.

まず,領事館で日本の免許証の翻訳を取得. その後,Westendstraße にある Kraftfahrzeugzulassung und Fahrerlaubnisbehörde のオフィスに日本の免許証と翻訳,写真と申請書を提出.そのうち手紙で案内が来るので,また受け取りに. 日本の免許証は,ベルリンの大使館経由でミュンヘンの領事館に届いて,それをまた受け取る形で返却してもらえた.

書類手続き

車の売買自体は,Nの銀行のお金を振込で支払って終了.一応,売買を証明する書類も作成してサインもした. その後, Westendstraße のオフィスで所有者変更の手続きなど.税金に関する手続きと,Fahrzeugbrief と Fahrzeugschein を発行してもらう. この際に,車の保険に関する番号が必要で,これは事前に保険会社から発行してもらう.

保険

これが一番やっかいだった..

上の手続きで保険会社に連絡したら,申込書が送られてくるので,それに記入して郵送.日本での保険の無事故証明(英語)が手に入ったのでそれも同封. なぜか日本の免許証のコピーの提出も求められたので,(翻訳は付けずに)郵送した.結局,手続きが全部終了するまでに一ヶ月以上かかった... ので,途中で保険会社のオフィスに行って,保険でカバーされていることを確認する書類をもらった.これがあれば,ドイツ外でも運転できたみたい. 値段は,,なかなかいいお値段..

運転の練習

車はマニュアル車で,マニュアル車なんて大昔に教習所を出て以来運転したことがなかったし,ドイツは右側通行で交通ルールも微妙に日本と違うので,近所の Fahrschule で,3回ほどレッスン.レッスンは一回1.5時間だと70ユーロほど.

それとはまた別に40ユーロで,オンラインで交通ルールを勉強できるツールも購入. Silverlight で動くツール自体はあんまりイケてないのだけど,,英語でも勉強できるので便利.

ということで..

これからぼちぼち通勤にも使っていこうということで,通勤路をチェックした帰り,わりとすぐに目のつく程度にこすってしまった..orz

手続きやら保険やら,いろいろ手伝ってくれたKとNに感謝です.