理科系の備忘録

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

セルオートマトンによる渋滞シミュレーション

はじめに 年末年始に渋滞学という本を読んだ。 車の渋滞だけではなく、緊急時の避難や蟻の行列、通信についても書かれていて勉強になった。渋滞学 (新潮選書)作者: 西成活裕出版社/メーカー: 新潮社発売日: 2006/09/21メディア: 単行本購入: 8人 クリック: 1…

シェルスクリプトで可変長データを読み取る

はじめに こんなデータに出くわした。data.txtとする。 1, hoge, foo, bar, piyo, [ID: 1; a; b; c; d;ID: 2; a; b; c; d;ID: 3; a; b; c; d;ID: 4; a; b; c; d;ID: 5; a; b; c; d;] 2, hoge, foo, bar, piyo, [ID: 1; a; b; c; d;] 3, hoge, foo, bar, piyo…

Git bashでSolarized Color

Solarizedのdarkが大好き。 Solarized - Ethan Schoonover 自分が使うPCのターミナル(とEmacs)をすべてsolarized darkにすることで環境の差を小さくし、 会社にいながら家にいるような気持ちでリラックスしてPCに向き合える。*1WindowsのPCにはGit bash(mi…

jediによるpythonコード補完 with Emacs on Windows

背景 年始なのでEmacsの設定を見直すことにした。大学時代に作った環境をずっと使っていたが、あれからpackage.elによるパッケージ管理が主流となり、自分の環境が時代遅れのものとなっていた。(auto-completeよりはcompany-modeがいいとか)pythonのコーデ…

線分と平面の交点を求める

線分の両端点(a, b)と平面の法線ベクトル(nv)と平面上の任意の点(p)から、線分と平面の交点を求めるC++のプログラム。線分abと平面の交点が線分abを内分する点となることから交点の座標を計算する。 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <string> using namespac</string></opencv2/highgui/highgui.hpp></opencv2/opencv.hpp></iostream>…

LabelingクラスをOpenCVで利用

学生時代にも一度お世話になったラベリングクラスhttp://imura-lab.org/products/labeling/を久々に使いました。 OpenCVで使える関数を作ったのでメモ。2値化が大津の手法なので、琵琶湖の画像にしてみました。 素敵な写真はこちらから使わせていただきまし…

RANSACで多項式推定

RANdom SAmple Consensus:RANSACは、外乱を含む観測値から数学的モデルのパラメタを推定する手法のひとつである。インターネットで調べれば文献が出てくるが、サンプルプログラムを調べてみるとOpenCVのHomography行列の推定か直線の推定がおおいので、多項…

Amazon DriveでMacの写真のバックアップ

はじめに 自分はMacの「写真app」を使って写真を管理し、これをiPhoneと同期させて出先で見たり見せたりしている。 そろそろクラウド上にバックアップを取ろうと思い、Amazon Driveを使うことにした。 Amazon Drive Amazon Driveとは、Amazonが運営するクラ…

視差画像とV-disparity

背景 ステレオ視差画像から平面を抽出する一つの手法として、視差画像をV-disparity画像に変換するというものがある。今回は視差画像からV-disparity画像への変換の練習をしてみる。 結果 試みに視差画像のy方向にノイズを加えてみた。その結果がV-disparity…

sdfファイルをrviz上のRobotDescriptionで表示する(後半)

実行環境 Ubuntu14.04 Gazebo 2.2.3 sdf 1.4 ROS indigo (そろそろGazebo7に戻りたい…) 背景 前半編でsdfからurdfを生成してrobot_descriptionに登録する方法を学んだ。 今回は、collada(daeファイル)をrvizで見られるか確認ついでに、sdfからurdfを変換す…

sdfファイルをrviz上のRobotDescriptionで表示する(前半)

実行環境 Ubuntu14.04 Gazebo 2.2.3 sdf 1.4 ROS indigo 背景 sdfを使ってモデルを作ったのにrvizのRobotDescriptionがurdfしか対応してないと知ってショックを受けた。 調べてみると、pysdfというROSのパッケージを使ってsdf to urdfの変換ができるようだ。…

Ubuntu14.04でeth0が見つからない

新しく手に入れたThinkPad x260にUbuntu14.04 LTSをインストールしたが、有線も無線もつながらない。Ethernetケーブルを挿してifconfigしてみると、普段現れるはずのeth0が見当たらず、loだけが表示されている。 ~$ lspci | grep Ether 00:1f.6 Ethernet con…

ATAM install on Ubuntu 14.04 LTS

基本的には公式[1]の通り。ただし、windowsでのインストールのみなので、メモを残す。まずOpenCV3.0を入れる。ROSと一緒に入ったOpenCVが2.4だったので、ソースを落としてきてcmakeした。 ググったらインストール方法はでてくる[2]が、non-freeをコンパイル…

ardrone simulatorでPTAM

環境: VM fusion 7 Ubuntu 14.04 LTS ROS IndigoROSのインストールについては公式参照。ardrone関係については、基本的にはここをみてインストールした。 http://wiki.ros.org/tum_ardronecatkinなので(?)、cloneしてきてcatkin_wsでcatkin_makeを繰り返…

ROS indigo, OSX 10.10.5

ROS indigoを[1]を参考にmac(OSX 10.10.5)にインストールしたのでメモ。 $ brew config HOMEBREW_VERSION: 0.9.5 ORIGIN: https://github.com/Homebrew/homebrew HEAD: 0f37e2943bba265b42bb2087ea24b86dcc614c35 Last commit: 4 hours ago HOMEBREW_PREFIX:…

awkでユーザ定義関数

awkには絶対値を返すabs()関数がないようだ。 ユーザ定義関数は以下のようにして定義可能。 seq 1 10 | awk '{print abs(-$1)} function abs(x){return (x>0)? x:-x}

Emacsで改行を置換

1 2 3 4 5を 1 2 3 4 5にしたい.EmacsのM-x replace-stringでC-q C-jとすれば^Jが入力され,改行を置換できる.

macportsをプロキシ経由で

Mac

プロキシ経由でmacportsのselfupdateができない場合は sudo env RSYNC_PROXY=proxy.hoge:8080 port selfupdateのようにしてRSYC_PROXYを設定すればOK. 普通に環境変数を設定すると,その値をsudoでの実行時に引き継げるような設定をsudoersに記述する必要が…

利尻島

黒部・立山

琵琶湖

tex tips

図表のキャプションの上下の空白は \begin{center} \end{center}の効果.無理やり無くしたい場合は,上記を消して \centeringを使えばよい.

Perlの2次元配列メモ

Perlで二次元配列を動的に生成する場合を考える. for( $i=0; $i<200; $i++){ for ($j=0; $j<@data1; $j++) { $data2[$i][$j] = $data1[$j]; } } このように書くだけで,動的に二次元配列とすることができる.ここで $j<@data1 は,@data1の要素数だけループ…

stdout: Broken pipe

gnuplot> plot "<cat vec.dat | head -23" using 3 with linevec.datは30万行を超えるデータである.catの結果をパイプでheadに渡すと cat: stdout: Broken pipeなどと仰った.パイプが壊れたようだ.これはcatの結果が30万行と膨大で,その結果が終わるまでにheadを読み込んでいるためと思われる.そもそもcatの後にhaedをする必要は無い.正しくは gnuplot> plot "</cat>

gnuplotでplot for

gnuplotでは,複数個のグラフをfor文を用いてplotすることができる.例えば,手元に連番ファイル「00.dat, 01.dat, ... , 09.dat」があったとする.for文を使わない場合は plot "00.dat" u 1:2 with lp title "data 00" replot "00.dat" u 1:2 with lp title…

シェルで行列を転置

以下の様なデータ(data.txt)をシェルで転置する. 0 615276 615276 615276 615276 615276 615276 615276 615276 0.1 580455 587213 587232 589734 590158 591019 592493 596381 0.2 500342 522058 521903 530142 531954 534774 539629 552938 0.3 426424 458…

連番のファイル名を変換する

連番画像のファイル名を一気に変えるコマンド. lsで表示したものに番号を振り,それを入力としてawkでコマンドを形成,shで実行する. ls *ppm | cat -n | awk '{printf "cp %s img_%04d.ppm\n", $2, $1}' | shshをevalにすると上手くいかない. (shだと毎…

UNIXコマンドメモ

http://unicus.jp/skmk/archives/315

UNIXコマンドメモ

ls ./c_img/ | grep _c_| sed 's,img,c_img/img,g' | xargs ./main左から順に c_img下にあるファイルを表示 _c_がつくものを表示 ファイルの先頭にc_img/を付加 これらを./mainの引数に渡す

統計的手法

最小二乗法 n個の観測値の組が与えられているとき,2つの変量間の関係を説明するモデルとして を考える.ここで,はモデルのパラメータである.平均2乗誤差(Least Mean Squared Error)を最小とするようなパラメータを求める推定方法は,最小2乗法と呼ばれて…