森澤/森澤2015
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
] [
Japanese
/
English
]
Research
research overview
papers
media
Members
professors
graduates
undergraduates
alumni
Links
Links
Classes
Computer Programming Basic II
Special Lecture of Mechanical Intelligent System Engineering I
Start:
[[森澤]]
~[[森澤/森澤2014]]
~[[森澤/森澤2013]]
~[[森澤/森澤修論]]
*雑記 [#vf815b57]
2/23
-[[有意差のバーの描き方>http://behindlabdoors.com/whats-i...
2/22
-[[CSV to Excel>http://soft.sukima.client.jp/csv2excel/]]...
-sedを使ってデータ整理
--文末にスペースと1(数字)を追加
sed -i 's/$/ 1/' hoge.dat
---iは上書き、$文末、sは置換
--SSVをCSVに変換
sed -i 's/ /, /g' hoge.dat
---gは全部という意味。付けないと各行の最初の一つしか置換...
--一行目にtime wayという文字を追加
sed -i '1s/^/time way\n/' hoge.dat
---1は1行目、^は先頭
2/17
-3データの検定
--多重比較: http://www.ibaraki-kodomo.com/toukei/posthoc....
--分散分析
--Bonferroni
--js-STAR: http://www.kisnet.or.jp/nappa/software/star/in...
2/16
-[[指定したファイルの更新があったらコマンドを自動実行する...
2/5
-e.g.を使った文の例
文; e.g. 例1, and 例2.
2/4
-approximation algorithm (近似解法、準最適解法): ある計...
-heuristic (ヒューリスティックス、発見的解法): 解の精度...
--精度保証の無い解法を近似解法と呼んでいる文献も見られる
--approximate algorithmよりapproximation algorithmと呼ぶ...
1/15
-OpenCVの画像領域の解放について
--IplImage構造体は解放されない。ループ毎に新しく確保する...
--cv::Matオブジェクトはスコープを抜けると解放されるように...
1/8
-スケジューリング問題について
--[[スケジューリング問題の概要>http://www.bunkyo.ac.jp/~n...
--[[動的問題と静的問題>http://www.sdi-net.co.jp/advanced0...
--[[動的問題の一般的な解法>http://www.mi.s.osakafu-u.ac.j...
-CPUのスケジューラについて
--[[スループットとレイテンシ>http://tom-rc.hatenablog.com...
--[[スタックとヒープ>http://ufcpp.net/study/computer/Memo...
--[[仮想メモリ>http://ufcpp.net/study/computer/OperatingS...
--[[プロセスとスレッド>https://imokuri123.com/blog/2013/1...
--[[スケジューリング - Wikipedia>https://ja.wikipedia.org...
12/5
-emacsで.bibファイルを開いているときのショートカット
--ショートカットの一覧を見る
C-c C-h
--インタラクティブに@articleを作成
C-c C-e C-a
---このとき、C-c C-cと入力すると次の項目にカーソルが移動...
---@inproceedingsを作成するなら最後がC-pになり、@bookなら...
12/2
-static
--静的ローカル変数 -> 関数を出ても値が残る
--静的グローバル変数/関数 -> そのファイル(モジュール)の...
--静的メンバ変数 -> オブジェクト間で値が共有される
--静的メンバ関数 -> インスタンスを作らなくてもその関数を...
12/1
-4ロボットのタスク分担
--&ref(test_4robots2tasks.avi); 2タスクの分担
--&ref(test_4robots10tasks.avi); 10個の物品の片付けの分担
11/16
-std::out_of_rangeとかvector::_M_range_checkとか
--vectorのメソッドatで、領域が確保されていないところを指...
11/7
-emacsのバージョンを確認する
M-x emacs-version
--としなくても、emacsの起動画面に書かれている
--Ubuntu12.04
~GNU Emacs 23.3.1 (i686-pc-linux-gnu, GTK+ Version 2.24.1...
--Ubuntu14.04
~GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10...
10/26
-9 steps to better software design today, by Jeff Bay
+ひとつのメソッドのインデントは1段階まで
+else 句 を使わない
+すべてのプリミティブ、文字型をラッピング
--int money はダメ。 moneyクラスも作る。
+ファーストクラスコレクションを使う
--コレクション(vector, list, ...)もそのまま使うのではなく...
+1行につき、ドットはひとつ
--ドットが複数ある=あるオブジェクトが多くのオブジェクトを...
+名前は省略しない
--長くなる場合、そのモノが責任を持ちすぎている可能性があ...
+クラス50行、パッケージ10ファイルまで
---「メソッドは3行まで」というマナーもあるらしい
+インスタンス変数は2つまで
--凝集度を低下させないように、細かく細かくする。
+getter/setter を使わない
--むやみに getter などを用意するのではなく, その getter ...
--必要になったらそのつどメソッドを追加すればいい
10/20
-[[roslaunchについて>http://rosrosrosrosros.blogspot.jp/2...
-[[ROSでOpenCVを使う>http://dailyrobottechnology.blogspot...
--cv_bridgeを使って、/camera/image_rawからIplImageに変換...
10/9
-&ref(multiAgentTidying_allocationgorder.ods);
--物品数m, ロボット数nを変えたときの順序の場合の数
---1つめの表が総数、2つ目の表がロボットの数をインクリメン...
-[[まんがで気軽に経営用語>http://keieimanga.net/]]
10/7
-[英語]Robot i, task mに冠詞は必要か
--付けることもあるし省くこともある
10/6
-[英語]any(either)のあとは単数形か複数形か
--不可算名詞のとき、肯定文「どんな〜でも」という意味のと...
-[[英語論文に使う表現文例集のレジュメ>http://homepage1.ni...
-[[改行を空白で置換してくれるWebツール>http://textmechani...
-[[文法チェッカー>http://spellcheckplus.com/]]
--文中に副詞を持ってくる際、「主語, 副詞, 一般動詞」の場...
-selectとchooseの違い
--selectの方が重い意味で、多数の中から最良のものを選ぶ。2...
-determineとdecideの違い
-- determine:結論を出す。decide:とりあえず決定する。
--term=終わらせる, cide=切るとか殺すとか. deは分離.
--ロボットが自分がするタスクを決定するの場合、decideの方...
10/2
-cmakeでOpenCVのプログラムをコンパイルする
cmake_minimum_required (VERSION 2.8)
add_executable(cameracapture cameracapture.cpp)
project (cameracapture_cmake)
# OpenCVのパッケージを探す ...
find_package(OpenCV REQUIRED)
# OpenCVが見つかった場合のみ設定を行う ...
if(OpenCV_FOUND)
# インクルードパスを指定 ...
include_directories(${OpenCV_INCLUDE_DIRS})
# リンクするライブラリ指定 ...
target_link_libraries(cameracapture ${OpenCV_LIBS})
endif(OpenCV_FOUND)
--find_packageは、/usr/share/cmake/Modules/の 下にある Fi...
---環境変数の定義はよく分からなかった。
--git リポジトリ
git clone ssh://morisawa@mizuuchi.lab.tuat.ac.jp:29418/m...
-git push -u origin masterの意味(uとはset-upstreamのこと)
--次回から git push だけで勝手に origin master で push し...
9/26
-[[Ubuntuでトラックポイントの速度を変更する>http://viewse...
--
/sys/devices/platform/i8042/serio1/serio2/speed
/sys/devices/platform/i8042/serio1/serio2/sensitivity
--再起動すると元にもどるので、/etc/rc.localをいじる
echo -n 255 > /sys/devices/platform/i8042/serio1/serio2/...
echo -n 255 > /sys/devices/platform/i8042/serio1/serio2/...
--リダイレクトした内容にルート権限が付かず許可されないとき
echo -n 255 | sudo tee /sys/devices/platform/i8042/serio...
echo -n 255 | sudo tee /sys/devices/platform/i8042/serio...
9/25
-[[英語で「状況」: condition, situation, circumstance>htt...
--狭い範囲の状況を表す順に、condition, situation, circums...
--前置詞・冠詞
---on condition that… (aka. provided that…)
---in a situation
---in a case
---under circumstances
---全て関係副詞whereを取って節にできる
9/16
-TeX関係
-texmfルートディレクトリ(TeXのインストール場所)
--/usr/share/texlive/texmf-dist (大本の本体、直接いじらな...
--/usr/local/share/texmf <- 自分で作ったものを入れる場所
--/usr/share/texmf (?)
--/etc/texmf (?)
-パッケージ
--hoge.styで書かれる
--\usepackage{hoge}で呼び出す
--\usepackage[dvipdfmx]{graphicx}におけるdvipdfmxはgraphi...
--(以下引用)“dvipdfmx”というオプションこそが「dvipdfmx ...
-パッケージをインストールする場所
--texmf/tex/latex/(パッケージ名)/(パッケージ名).sty
---texはTeXの動作に必要なファイルが入っているディレクトリ
---latexはLaTeXの動作に必要なファイルが入っているディレク...
--ここにあると探してもらえる。カレントディレクトリでも良...
9/10
-Ubuntuにログインできない(パスワード入力画面以降表示され...
--下記のコマンドを打って、lightdmでなくgdmを選択すると直...
sudo aptitude install gdm
9/1
-動画編集ソフトの比較
--フリー
---AviUtl: 多機能.Windows.
---VideoPad: 使いやすい.Windows, Mac
---Avidemux: 14以上の動画フォーマットに対応
--有償
---Corel VideoStudio: 直感的
---Adobe After Effects: 多機能
-目的別
--動画を並べて並行に再生したい->VideoStudioで出来た
--エンディングに黒一色の動画を追加したい->VideoPadで出来た
8/29
-&ref(tm_150829_203616.avi);
--予定ではRoombaが運搬すべきだった物品をNAOが運搬すること...
--提案手法は、どちらのロボットが運んでもあまり変わらない...
8/28
-&ref(tm_150828_183452.avi);
--NAOがボール運搬するときはこう動いてほしい
8/26
-&ref(tm_150826_213108.avi);
--経路計画計算時に用いるロボットの移動速度を間違えていた...
--分担プログラムは最低限できた. うまく片付けできていない...
--箱が画面外に出る問題は壁を設置するか?
-&ref(tm_150826_202521.avi);
--残り一品になったときの分業がおかしいかもしれない。予定...
--現状、運搬中のロボットを停止させるプログラムは書いてい...
8/25
-進捗: &ref(./tm_150825_133750.avi);&ref(./tm_150825_1337...
--NAOの頭の座標をNAOの座標としていたので、足元に来るよう...
8/17
-進捗: &ref(./tm_150817_153540.avi,分担動画);
--ルートを経由する点として与えて、現在位置から経由点に移...
--運びきったあとに再分担するメソッドは動作未確認
8/16
-進捗: &ref(./nao_pushing_box_150816_tm.avi,NAOによる箱押...
--直進中(特に後退中)だんだん逸れていってしまう様子.
8/14
-イテレータが参照している変数をポインタ渡しするにはfunc(&...
8/13
-[[派生クラス<->基本クラスの代入>http://www.kab-studio.bi...
--派生クラスを基本クラスに代入することはできるが、逆はで...
8/7
-[OpenCV]画像コピーの仕方
--IplImage構造体のコピー: cvCloneImage, cvCopy
---cvCloneImageは事前のメモリ確保が不要で楽
--cv::Matクラスのコピー: cloneメソッド or 代入
---代入の場合、データへの参照がコピーされるだけで実体はそ...
8/3
-g++のバージョン
--Ubuntu12.04
---g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
--Ubuntu14.04
---g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
-C++のバージョン
--g++4.6, 4.8ではデフォルトでC++03でコンパイルされる
--しばしばC++11で追加された機能を使いたいことがあるので-s...
---g++4.6では-std=c++11というオプションはサポートされてお...
---C++03とC++11の互換性についてはここに詳しい http://d.ha...
-NAOqiを使ったプログラムをC++11でコンパイルしようとすると...
--オプションを-std=c++0xから-std=gnu++0xとしたら全て解決 ...
---c++0xとgnu++0xの違いはよく分からなかった...
7/24
-std::vector<cv::Vec>となると思いきや、std::vectorはFIFO...
-書いた。[[長めの雑記/USB-BlueTooth>#d4817a59]]
-[C++]参照
--初期化の際に有効なメモリを指定しなければならず、また書...
--constを付けた参照は、参照先の変数の書き換えを不可にする...
---参照渡しと値渡しは、渡す側の関数での見た目が同じである...
~そのため参照渡しはconstで行い、変数の書き換えをする場合...
7/15
-ロボット・物品の座標を2次元座標クラスで扱うことにした
--自作クラスを作るより、OpenCVの2次元座標クラスを使うこと...
---OpenCVのクラスならそのままビジュアライズ出来るので便利
--色々クラスがあったので纏めて書いた。[[長めの雑記/OpenCV...
--ついでに長らくよく分からずに使っていたOpenCVの画像構造...
7/14
-bashでの拡張子の一括変更(例は *.fasta -> *.fa)
for i in `ls *.fasta`
do
mv ${i} ${i%.fasta}.fa
done
--%は、末尾から遡って検索して最初に一致した文字列を削除す...
--コピペ用
for i in `ls *.fasta`; do mv ${i} ${i%.fasta}.fa; done
7/13
-グループ、ユーザの編集について
--ユーザの追加はuseraddではなく、adduserを使う
---useraddはデフォルトではホームディレクトリが作られなか...
--グループへの追加はusermodではなく、gpasswdを使う
sudo gpasswd -a username groupname
---usermod -Gは、ユーザの所属グループの書き換えであり、記...
--visudoをemacsで
---
VISUAL=emacs visudo
7/8
-vector<double> hoge にhoge[1][1]とアクセスしたら、32bit...
-[[gitのリモートリポジトリのURLをhttpsにするとpushする度u...
--
git remote set-url origin ssh://morisawa@mizuuchi.lab.tu...
などとする
-1秒未満で乱数列を取得する方法([[参考>http://yoppi.hatena...
--
#include <time.h>
...
srand((unsinged)time(NULL));
を
#include <sys/time.h>
...
struct timeval tv;
gettimeofday(&tv, NULL);
srand(tv.tv_sec + tv.tv_usec);
に変える。
7/6
-rsyncのディレクトリのコピーの仕方
-- -rオプションを付けて、ディレクトリの後ろにスラッシュを...
rsync -r myDir miz:hoge
---スラッシュを付けると、ディレクトリの中身がhogeに展開コ...
7/2
-[[Linux の date コマンドでミリ秒まで出力する方法>http://...
-FormatFactory
--学会の論文集にmpeg1の動画を貼りたいけれど、容量が大きく...
---フレームレートを下げたら画面がボロボロになった。フレー...
6/29
-[[端末のTab押下時の補完機能で大文字小文字を無視させる>ht...
--$HOME/.inputrcに以下の一行を追加するとTab押下時の補完で...
set completion-ignore-case on
-emacsのファイル検索(C-x C-f)で同様の補完設定を行う([[参...
--$HOME/.emacsに下記を追加
(setq read-file-name-completion-ignore-case t)
6/27
-[[C++で順列列挙>http://vivi.dyndns.org/tech/cpp/permutat...
--コンパイルオプション-std=c++11が必要
6/21
-emacs -nwでAltキーでメニューバーにアクセスするのを止める...
--端末でAlt+e kで「キーボードショートカット」を開く。一番...
6/20
-ファイルディスクリプタとかソケットディスクリプタとかにつ...
--LinuxなどUNIX系OSでは,入出力はすべてバイト列(文字列の...
~ディスクリプタは単なる整数で,ストリームを区別する識別子...
~ディスクリプタはプロセスごとの固有の値で,0番が標準入力...
~ディスクリプタの最も重要な特徴は,ファイル・ディスクリプ...
~もちろん,OSの内部ではそれぞれの装置に対して処理内容が全...
~これはオブジェクト指向の「ポリモーフィズム」という考え方...
-[[Pythonでネットワークプログラミング>http://memo.saitode...
--ポート番号を合わせれば、C++で書いたプログラムとソケット...
-Terminatorを導入したがデフォルトのフォントが小さいしイマ...
6/19
~指定した座標にボールを運ばせるようにした &ref(./roombaPu...
- 指定した座標がどこなのか分からない -- [[森澤]] &new{201...
-- 更新しました
- 時々ゆっくりと前後しているのはロボットの角度合わせのた...
#comment
6/18
-/dev/ttyUSB*や/dev/video*と何の機器が対応しているのかを...
--シリアルデバイスの場合
ls /dev/serial/by-id/ -l
--カメラの場合
ls /dev/v4l/by-id/ -l
---/dev/ttyUSB*からのシンボリックリンクが置かれている。フ...
---あるファイルのシンボリックリンクからの被参照を調べるこ...
-[firefox][vimperator]Vimperatorでまず覚えたいコマンドと...
--http://d.hatena.ne.jp/juno_c/20090516/1242492749
-[C++]vectorへのポインタから要素にアクセスする方法(vector...
--(*hoge)[i] もしくは hoge->at(0)
6/17
~NAOはPython, RoombaはC++で動かしたい
-[[c/c++をラップしてpythonで使えるようにする>http://www.q...
--上のサイトだとコンパイルエラーが発生したので[[こちら>ht...
---BOOST_PYTHON_MODULEの引数と、ファイル名(から拡張子を引...
-今後のプログラム
--1. 全部ROSを使って書く → 習得に時間掛かりそう
--2. 全部C++で書く → NAOのプログラムをC++で書くのは下記...
---2.5. Cmakeで作る方法と、強引に必要なライブラリを全部g+...
--3. PythonでNAOを動かすプログラム、C++でRoombaを動かすプ...
--4. PythonでNAOを動かすプログラム、C++でRoombaを動かすプ...
---PythonからC++はできそう。逆は困難。
-C++でNAOを動かす欠点
--プログラムを修正すると一回毎にコンパイルが必要
--実行毎にNAOとの接続が必要(接続には3秒くらい掛かる)
--リスト(関節角度列など)の扱いが面倒
--コンパイル前にconfigureが必要
→今回のプログラムでは大きく問題にはならない。
-2または4 -> やがて1に移行、とするのが良さそう。
~[OpenCV]ROSインストールの過程で入れたOpenCVにnonfree.hpp...
-[[ここで解決>http://stackoverflow.com/questions/27481849...
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev
6/15
-11-201天井カメラの視野: 195 x 260cm(解像度4:3の場合)
--16:9の場合は195 x 346.66cm
6/12
-[[Perl、Python、PHP、Rubyについて>http://qiita.com/raccy...
6/9
-Ubuntuエクスプローラのブックマークの編集
--~/.config/gtk-3.0/bookmarks
6/8
-[[ubuntuでsudoの設定変更に失敗したときの対応>http://te2u...
--(身に覚えがないが)sudoグループから外されてしまった場...
--vmwareの場合、shiftキーを押しながらリブートするとGRUBに...
6/4
-[Ubuntu]Alt+ShiftでIMEが変わるのを無効にする~
1.画面右上のキーボードのアイコンをクリック、設定を選択~
2.「キーボードショートカット」の「次のインプットメソッド...
-[C++]templateを使った関数の宣言と定義を別ファイルに記述...
--HEADER.hに定義も書けばOK
--参考: http://d.hatena.ne.jp/kobapan/20090213/1258493570
6/2
-仮想Ubuntuの容量がいっぱいになりそうなのでディレクトリ構...
cd /
du * -s -m
--/usr/local/src/OpenCV -> 1.88GB
--/usr/share/texlive->400MB
--/usr/share/texmf->140MB
--/usr/share/doc/texlive*->700MB(合計)
--/home/prog/NAO/naoqi-sdk-2.1.0.19-linux32 -> 670MB
--/home/prog/NAO/choregraphe-suite-2.1.0.19-linux32 -> 70...
-仮想UbuntuからホストOSのディレクトリにアクセス
--Dropboxを仮想Ubuntuで同期するとディスクが圧迫されるので...
--http://tamori.3zoku.com/linux/ubuntu_on_win.html の5.1...
---ホームディレクトリにマウント
mkdir /home/morisawa/morisawa-win
sudo mount -t vmhgfs .host:/morisawa-win /home/morisawa/...
--(6/3追記)VMware ToolsはホストOS毎にインストールが必要...
---[[ここを参考にして解決>http://mmmpa.hatenablog.com/ent...
-Dropboxのアンインストール
service stop dropbox
rm ${HOME}/.dropbox* -rf
rm ${HOME}/Dropbox -rf
6/1
-[[xmonadのCapsLock->Ctrl設定法>http://yomi322.hateblo.jp...
5/28
-キャスタの選び方
--車輪の大きさ
---径大→転がり抵抗少ない・凸凹に強い
--素材(主にゴム・ウレタン・ナイロン)
---柔らかい(ゴム):凸凹に強い
---硬い(ナイロン):重たいものを軽く運べる
--床の素材との関係
---フローリングの場合、タイヤが床より柔らかくないと床が傷...
---カーペットの場合、硬い素材を用いるのが(イスなどでは)...
--車輪の種類の組み合わせ
---台車:自在2、固定2(押手側に固定車輪が付くのが一般的)
---ショッピングカート:自在4
5/22
-Ubuntuのテキストファイルのgnome-openの規定のプログラムを...
sudo emacs /usr/share/applications/defaults.list
として、
text/plain=gedit.desktop
を
text/plain=emacs.desktop
に変更する
-PowerPointの動画貼り付け「ファイルからリンク」について
--リンクは絶対パスである(何故相対パスでないのかは不明)。
--ただし、パワーポイントのファイルのあるフォルダは探して...
5/7
-[Windows]テキストファイルを開く既定のプログラムにMeadow...
--解決法 C:\meadow\bin\meadow.exeでなく、c:\meadow\bin\R...
-[[ハードリンクとシンボリックリンクの違い>http://q.hatena...
--パーティション超える場合はシンボリックリンクを使う。
--ハードリンクの有り難みとしてメールがある。
5/6
-UbuntuでのDropboxの設定
--結局[[ここ>http://www.maruko2.com/mw/Dropbox%E3%82%92Li...
$ crontab -e #export EDITOR=emacs 等としないと、nanoが起...
に以下の行を追加
@reboot ${HOME}/.dropbox-dist/dropboxd
-VT-dとは
Intel VTの技術のひとつに、I/O処理の仮想化を支援する「VT-...
VT-dに対応していると、仮想化環境から物理的なHDDやネット...
しかし、VT-dに対応しているハードウェアは意外と限られてい...
5/1
-rsync -rv [同期元]/ [同期先]
--差分だけコピーしてくれる。リモートとローカルのやりとり...
4/30
-[git]仮想環境での更新をpullし忘れて自分の環境で更新して...
git fetch #git pullをした場合はこの操作は不要
git add hoge
git commit -m "fuga"
git merge origin/master #origin/master -> master
-[git]masterとorigin/masterの違い
--masterはローカルリポジトリが基になっていて、origin/mast...
--git commit をするとmasterブランチが更新される。
--git pullは、以下の処理を纏めて行うものである。
---git fetch: origin/masterブランチが更新される。
---git merge origin/master: 今いるブランチにorigin/master...
--git checkout origin/masterとするとorigin/masterブランチ...
4/21
-&ref(fonts.JPG);
--上から、小瑠璃Regular、源真Normal、メイリオ
4/7
-[[USBの限界に挑む! 規格上の接続数127台は可能か?>http:...
--結論は100台くらいが限界。かなり不安定に
--Windows 7はUSBハブを1ポートに5台までしか繋げられない
--一気に接続したらエラー頻発
--メインで使うマウスとキーボードは本体に直接つながないと(...
*長めの雑記 [#af751226]
**テンプレートマッチングに関する勉強 [#l464ebc1]
-http://isl.sist.chukyo-u.ac.jp/Archives/SSII2013TS-Hashi...
-cvMatchTemplateの第4引数(計算方法)
--CV_TM_SQDIFF→SSD(Sum of Squared Difference)
--CV_TM_CCORR_NORMED→NCC(Normalized Cross-Correlation)
--CV_TM_CCOEFF_NORMED→ZNCC(Zero-mean Normalized Cross-Co...
--計算速度はSSD>NCC>ZNCC, 精度は逆順
---Ubuntuの場合は、最適化してコンパイルすると計算速度がNC...
**CV_FOURCC一覧 [#x9d59857]
-CV_FOURCC('P','I','M','1') MPEG-1
-CV_FOURCC('M','P','G','4') MPEG-4
-CV_FOURCC('M','P','4','2') MPEG-4.2
-CV_FOURCC('D','I','V','X') DivX
-CV_FOURCC('D','X','5','0') DivX ver 5.0
-CV_FOURCC('X','V','I','D') Xvid
-CV_FOURCC('U','2','6','3') H.263
-CV_FOURCC('H','2','6','4') H.264
-CV_FOURCC('F','L','V','1') FLV1
-CV_FOURCC('M','J','P','G') Motion JPEG
-0 無圧縮
**構造体に関するあれこれ [#j5e3f844]
-以下の内容は、演算子の優先順位を知れば理解できる。 ''優...
-構造体へのポインタが、構造体のメンバ変数にアクセスする場合
--(*Struct).x = Struct->x
---xが変数の場合は値、ポインタの場合はアドレスが渡される
-構造体が、メンバ変数へのポインタの記憶するアドレスにアク...
--*Struct.x //xはポインタ
---xの記憶するアドレスの中身が渡される
-構造体へのポインタが、構造体のメンバ変数へのポインタの記...
--*Struct->x //xはポインタ
---xの記憶するアドレスの中身が渡される
-構造体が、メンバ変数のアドレスにアクセスする場合
--&Struct.y //yは変数
-構造体へのポインタが、構造体のメンバ変数のアドレスにアク...
--&Struct->y //yは変数
-要するに何がしたいか:IplImage構造体へのポインタをメンバ...
--普通にStruct->IPLIMAGE でOK
**vimperatorrc [#g769dfba]
-[[基本は恒岡君のものをコピペ>https://github.com/ytsunets...
-以下を追加
set editor=emacs
nnoremap h <C-p>
nnoremap l <C-n>
**ソケット通信の仕組み [#o22d2602]
-以下[[ここ>http://memo.saitodev.com/home/python_network_...
-サーバの仕事
--socketでソケットを作成
--bindでアドレスとポート番号を指定
--listenでクライアントの接続を待つ
--acceptでクライアントの接続を受け付ける
--sendやrecvを使ってクライアントのデータの送受信を行う
--closeでソケットを閉じる
-クライアントの仕事
--ソケットを作成した後にconnectを使ってサーバに接続し、通...
**CMakeを使わずに自力でC++NAOqiのプログラムをコンパイルす...
-記入例
g++ main.cpp -I/home/morisawa/2014prog/NAO/naoqi-sdk-2.1...
-ポイント
--naoqiのディレクトリ/lib以下の全てのlib*.soファイルへの...
--naoqiのディレクトリ/libをLD_LIBRARY_PATHに登録しないと...
**OpenCVの行列と画像情報の扱い [#h5db85cb]
-C(構造体)
--画像はIplImage, 行列はCvMatと分かれている。
---仮引数としてのみ使われるメタ型CvArrというものもある。
--OpenCV1.0からずっと変わらない.
-OpenCV2.0ではC++に対応し、どちらもMatクラスになった。
--要素の型があっていれば、そのまま線形代数の演算(積)がで...
--invメソッドを使って擬似逆行列も算出できる。
--擬似逆行列も計算できるらしい。
-以下cv::Matについて
-画像の表示
cv::Mat img = cv::Mat::zeros(500, 500, CV_8UC3);//8bit u...
cv::imshow("windowName", img);
-読み込み
Mat cv::imread(const string& filename, int flags=1)//fla...
-書き込み
bool cv::imwrite(const string& filename, const Mat& img,...
--詳細 http://opencv.jp/opencv-2svn/cpp/reading_and_writi...
-IplImage構造体とcv::Matクラスの変換
--cv::Mat -> IplImage
IplImage iplImage = cppMat;
--IplImage -> cv::Mat
cv::Mat cppMat = cv::cvarrToMat(iplImage);
-カメラキャプチャは、VideoCaptureクラスを定義する. 動画記...
--
cap >> img; //img = cvQuaryframe(cap);に相当
writer << img; //cvWriteFrame(img);に相当
**OpenCVの2次元座標クラスの比較 [#jf3cc279]
以下の3つを比較
-cv::Mat(2,1)
-cv::Point2d == cv::Point_<double>
-cv::Vec2d == cv::Vec <double,2>
このうち、cv::Mat(2,1)は初期化が面倒なので却下
-cv::Point2d(x,y);という初期化ができてほしい
-ただしcv::Matは行列計算がそのままできるというメリットが...
Point2dとVec2dの違い(殆どない。どちらも内積やノルムの計...
-MatからVecへは暗黙の型変換はできるが、MatからPointへはで...
-''Pointはスカラーで割ることはできない''(/演算子は未定義...
-変数の呼び方が異なる。p.xかv(0)。
--そのため、VecとPointどちらも扱える自作関数は作れないの...
--個人的にはv(0),v(1)という呼び方が直感的でなく感じたので...
型変換の方法
cv::Mat(2,1) m, cv::Vec2d v, cv::Point2d p;
m=Mat(v);
v=m;
v=p;
p=v;
p=Point2d(m);
m=Mat(p);
**C言語の分割コンパイルとか依存関係とか [#g6b1d4d1]
-宣言は何回あってもよい。定義が重複すると怒られる。
--定義では名前(識別子)が宣言されて,実際にメモリ領域を...
--宣言では名前(識別子)が宣言されるだけで,メモリ領域は...
--staticを付けると怒られなくなるのは、一度しか定義されな...
-重複定義は、コンパイル時とリンク時それぞれに起こる。
--リンク時の重複定義エラーは、いくつかのオブジェクトファ...
---実体がいくつもあれば、このときに位置が確定しない。
--インクルードガードで防げるのは前者のみ。
--#include"hoge.c"などとすると、hoge.c内の関数が重複定義...
-"定義されていない参照"は、宣言だけされて定義していない関...
--コンパイル時には怒られないので、中間ファイルを作る時点...
---stdio.hとかcv.hとか何度呼び出しても怒られないのはそれ...
-分割コンパイルのメリットは、書き直し時のリコンパイルが楽...
--sita.cがue.cに書かれた関数を使っているとき、sita.cとue....
---本体のリコンパイルのほかはリンクだけやり直せばよい
-gcc hoge.c fuga.c
--hoge.cとfuga.cをそれぞれコンパイルしてリンクする
-gcc hoge.c fuga.c -c
--オブジェクトファイルが2つ作られる。
**USB-BlueTooth [#d4817a59]
-PRINCETON PTM-UBT7を使ってみる
-$ hciconfigで表示された内容<T530(Ubuntu14.04LTS, 64bit)>
--内蔵BlueToothオン, USB-BlueToothオフ
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
DOWN INIT RUNNING
RX bytes:439 acl:0 sco:0 events:21 errors:0
TX bytes:85 acl:0 sco:0 commands:22 errors:0
--内蔵BlueToothオフ, USB-BlueToothオン
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
--内蔵BlueToothオフ, USB-BlueToothオン
hci1: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
UP RUNNING PSCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
---先にオンした方が若い番号を振られる。
-$ hciconfigで表示された内容<T530(Ubuntu12.04LTS,32bit)>
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:856 acl:0 sco:0 events:36 errors:0
TX bytes:886 acl:0 sco:0 commands:36 errors:0
hci1: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
UP RUNNING PSCAN
RX bytes:822 acl:0 sco:0 events:33 errors:0
TX bytes:877 acl:0 sco:0 commands:33 errors:0
--下2行が64bitと異なる。
-書いてあることの意味
--hci
---BlueTooth通信プロトコル
--Type:BR/EDR
---BlueToothにはBR/EDRとBLEという2種類の通信方式がある。...
---詳しくは http://blue-crystal.squares.net/doc/ble/index...
--BDアドレス
---MACアドレスみたいなもの。一つの機器が世界で一つのアド...
--ACL MTU, SCO MTU
---BlueToothのパケットには主にACLとSCOの2種がある。
---ACL = Asynchronous Connection-Less(データ通信に使われる)
---SCO = Synchronous Connection-Oriented(音声通信に使われ...
---MTU = Maximum Transmission Unit(あるネットワークにおい...
--UP RUNNING
---対義語はDOWNらしい。
---DOWNのときは$ hciconfig hci0 up とすることで起動できる...
--PSCAN, ISCAN
---Progressive scan, Interlaced scan
---スキャン(走査)の方式
End:
[[森澤]]
~[[森澤/森澤2014]]
~[[森澤/森澤2013]]
~[[森澤/森澤修論]]
*雑記 [#vf815b57]
2/23
-[[有意差のバーの描き方>http://behindlabdoors.com/whats-i...
2/22
-[[CSV to Excel>http://soft.sukima.client.jp/csv2excel/]]...
-sedを使ってデータ整理
--文末にスペースと1(数字)を追加
sed -i 's/$/ 1/' hoge.dat
---iは上書き、$文末、sは置換
--SSVをCSVに変換
sed -i 's/ /, /g' hoge.dat
---gは全部という意味。付けないと各行の最初の一つしか置換...
--一行目にtime wayという文字を追加
sed -i '1s/^/time way\n/' hoge.dat
---1は1行目、^は先頭
2/17
-3データの検定
--多重比較: http://www.ibaraki-kodomo.com/toukei/posthoc....
--分散分析
--Bonferroni
--js-STAR: http://www.kisnet.or.jp/nappa/software/star/in...
2/16
-[[指定したファイルの更新があったらコマンドを自動実行する...
2/5
-e.g.を使った文の例
文; e.g. 例1, and 例2.
2/4
-approximation algorithm (近似解法、準最適解法): ある計...
-heuristic (ヒューリスティックス、発見的解法): 解の精度...
--精度保証の無い解法を近似解法と呼んでいる文献も見られる
--approximate algorithmよりapproximation algorithmと呼ぶ...
1/15
-OpenCVの画像領域の解放について
--IplImage構造体は解放されない。ループ毎に新しく確保する...
--cv::Matオブジェクトはスコープを抜けると解放されるように...
1/8
-スケジューリング問題について
--[[スケジューリング問題の概要>http://www.bunkyo.ac.jp/~n...
--[[動的問題と静的問題>http://www.sdi-net.co.jp/advanced0...
--[[動的問題の一般的な解法>http://www.mi.s.osakafu-u.ac.j...
-CPUのスケジューラについて
--[[スループットとレイテンシ>http://tom-rc.hatenablog.com...
--[[スタックとヒープ>http://ufcpp.net/study/computer/Memo...
--[[仮想メモリ>http://ufcpp.net/study/computer/OperatingS...
--[[プロセスとスレッド>https://imokuri123.com/blog/2013/1...
--[[スケジューリング - Wikipedia>https://ja.wikipedia.org...
12/5
-emacsで.bibファイルを開いているときのショートカット
--ショートカットの一覧を見る
C-c C-h
--インタラクティブに@articleを作成
C-c C-e C-a
---このとき、C-c C-cと入力すると次の項目にカーソルが移動...
---@inproceedingsを作成するなら最後がC-pになり、@bookなら...
12/2
-static
--静的ローカル変数 -> 関数を出ても値が残る
--静的グローバル変数/関数 -> そのファイル(モジュール)の...
--静的メンバ変数 -> オブジェクト間で値が共有される
--静的メンバ関数 -> インスタンスを作らなくてもその関数を...
12/1
-4ロボットのタスク分担
--&ref(test_4robots2tasks.avi); 2タスクの分担
--&ref(test_4robots10tasks.avi); 10個の物品の片付けの分担
11/16
-std::out_of_rangeとかvector::_M_range_checkとか
--vectorのメソッドatで、領域が確保されていないところを指...
11/7
-emacsのバージョンを確認する
M-x emacs-version
--としなくても、emacsの起動画面に書かれている
--Ubuntu12.04
~GNU Emacs 23.3.1 (i686-pc-linux-gnu, GTK+ Version 2.24.1...
--Ubuntu14.04
~GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10...
10/26
-9 steps to better software design today, by Jeff Bay
+ひとつのメソッドのインデントは1段階まで
+else 句 を使わない
+すべてのプリミティブ、文字型をラッピング
--int money はダメ。 moneyクラスも作る。
+ファーストクラスコレクションを使う
--コレクション(vector, list, ...)もそのまま使うのではなく...
+1行につき、ドットはひとつ
--ドットが複数ある=あるオブジェクトが多くのオブジェクトを...
+名前は省略しない
--長くなる場合、そのモノが責任を持ちすぎている可能性があ...
+クラス50行、パッケージ10ファイルまで
---「メソッドは3行まで」というマナーもあるらしい
+インスタンス変数は2つまで
--凝集度を低下させないように、細かく細かくする。
+getter/setter を使わない
--むやみに getter などを用意するのではなく, その getter ...
--必要になったらそのつどメソッドを追加すればいい
10/20
-[[roslaunchについて>http://rosrosrosrosros.blogspot.jp/2...
-[[ROSでOpenCVを使う>http://dailyrobottechnology.blogspot...
--cv_bridgeを使って、/camera/image_rawからIplImageに変換...
10/9
-&ref(multiAgentTidying_allocationgorder.ods);
--物品数m, ロボット数nを変えたときの順序の場合の数
---1つめの表が総数、2つ目の表がロボットの数をインクリメン...
-[[まんがで気軽に経営用語>http://keieimanga.net/]]
10/7
-[英語]Robot i, task mに冠詞は必要か
--付けることもあるし省くこともある
10/6
-[英語]any(either)のあとは単数形か複数形か
--不可算名詞のとき、肯定文「どんな〜でも」という意味のと...
-[[英語論文に使う表現文例集のレジュメ>http://homepage1.ni...
-[[改行を空白で置換してくれるWebツール>http://textmechani...
-[[文法チェッカー>http://spellcheckplus.com/]]
--文中に副詞を持ってくる際、「主語, 副詞, 一般動詞」の場...
-selectとchooseの違い
--selectの方が重い意味で、多数の中から最良のものを選ぶ。2...
-determineとdecideの違い
-- determine:結論を出す。decide:とりあえず決定する。
--term=終わらせる, cide=切るとか殺すとか. deは分離.
--ロボットが自分がするタスクを決定するの場合、decideの方...
10/2
-cmakeでOpenCVのプログラムをコンパイルする
cmake_minimum_required (VERSION 2.8)
add_executable(cameracapture cameracapture.cpp)
project (cameracapture_cmake)
# OpenCVのパッケージを探す ...
find_package(OpenCV REQUIRED)
# OpenCVが見つかった場合のみ設定を行う ...
if(OpenCV_FOUND)
# インクルードパスを指定 ...
include_directories(${OpenCV_INCLUDE_DIRS})
# リンクするライブラリ指定 ...
target_link_libraries(cameracapture ${OpenCV_LIBS})
endif(OpenCV_FOUND)
--find_packageは、/usr/share/cmake/Modules/の 下にある Fi...
---環境変数の定義はよく分からなかった。
--git リポジトリ
git clone ssh://morisawa@mizuuchi.lab.tuat.ac.jp:29418/m...
-git push -u origin masterの意味(uとはset-upstreamのこと)
--次回から git push だけで勝手に origin master で push し...
9/26
-[[Ubuntuでトラックポイントの速度を変更する>http://viewse...
--
/sys/devices/platform/i8042/serio1/serio2/speed
/sys/devices/platform/i8042/serio1/serio2/sensitivity
--再起動すると元にもどるので、/etc/rc.localをいじる
echo -n 255 > /sys/devices/platform/i8042/serio1/serio2/...
echo -n 255 > /sys/devices/platform/i8042/serio1/serio2/...
--リダイレクトした内容にルート権限が付かず許可されないとき
echo -n 255 | sudo tee /sys/devices/platform/i8042/serio...
echo -n 255 | sudo tee /sys/devices/platform/i8042/serio...
9/25
-[[英語で「状況」: condition, situation, circumstance>htt...
--狭い範囲の状況を表す順に、condition, situation, circums...
--前置詞・冠詞
---on condition that… (aka. provided that…)
---in a situation
---in a case
---under circumstances
---全て関係副詞whereを取って節にできる
9/16
-TeX関係
-texmfルートディレクトリ(TeXのインストール場所)
--/usr/share/texlive/texmf-dist (大本の本体、直接いじらな...
--/usr/local/share/texmf <- 自分で作ったものを入れる場所
--/usr/share/texmf (?)
--/etc/texmf (?)
-パッケージ
--hoge.styで書かれる
--\usepackage{hoge}で呼び出す
--\usepackage[dvipdfmx]{graphicx}におけるdvipdfmxはgraphi...
--(以下引用)“dvipdfmx”というオプションこそが「dvipdfmx ...
-パッケージをインストールする場所
--texmf/tex/latex/(パッケージ名)/(パッケージ名).sty
---texはTeXの動作に必要なファイルが入っているディレクトリ
---latexはLaTeXの動作に必要なファイルが入っているディレク...
--ここにあると探してもらえる。カレントディレクトリでも良...
9/10
-Ubuntuにログインできない(パスワード入力画面以降表示され...
--下記のコマンドを打って、lightdmでなくgdmを選択すると直...
sudo aptitude install gdm
9/1
-動画編集ソフトの比較
--フリー
---AviUtl: 多機能.Windows.
---VideoPad: 使いやすい.Windows, Mac
---Avidemux: 14以上の動画フォーマットに対応
--有償
---Corel VideoStudio: 直感的
---Adobe After Effects: 多機能
-目的別
--動画を並べて並行に再生したい->VideoStudioで出来た
--エンディングに黒一色の動画を追加したい->VideoPadで出来た
8/29
-&ref(tm_150829_203616.avi);
--予定ではRoombaが運搬すべきだった物品をNAOが運搬すること...
--提案手法は、どちらのロボットが運んでもあまり変わらない...
8/28
-&ref(tm_150828_183452.avi);
--NAOがボール運搬するときはこう動いてほしい
8/26
-&ref(tm_150826_213108.avi);
--経路計画計算時に用いるロボットの移動速度を間違えていた...
--分担プログラムは最低限できた. うまく片付けできていない...
--箱が画面外に出る問題は壁を設置するか?
-&ref(tm_150826_202521.avi);
--残り一品になったときの分業がおかしいかもしれない。予定...
--現状、運搬中のロボットを停止させるプログラムは書いてい...
8/25
-進捗: &ref(./tm_150825_133750.avi);&ref(./tm_150825_1337...
--NAOの頭の座標をNAOの座標としていたので、足元に来るよう...
8/17
-進捗: &ref(./tm_150817_153540.avi,分担動画);
--ルートを経由する点として与えて、現在位置から経由点に移...
--運びきったあとに再分担するメソッドは動作未確認
8/16
-進捗: &ref(./nao_pushing_box_150816_tm.avi,NAOによる箱押...
--直進中(特に後退中)だんだん逸れていってしまう様子.
8/14
-イテレータが参照している変数をポインタ渡しするにはfunc(&...
8/13
-[[派生クラス<->基本クラスの代入>http://www.kab-studio.bi...
--派生クラスを基本クラスに代入することはできるが、逆はで...
8/7
-[OpenCV]画像コピーの仕方
--IplImage構造体のコピー: cvCloneImage, cvCopy
---cvCloneImageは事前のメモリ確保が不要で楽
--cv::Matクラスのコピー: cloneメソッド or 代入
---代入の場合、データへの参照がコピーされるだけで実体はそ...
8/3
-g++のバージョン
--Ubuntu12.04
---g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
--Ubuntu14.04
---g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
-C++のバージョン
--g++4.6, 4.8ではデフォルトでC++03でコンパイルされる
--しばしばC++11で追加された機能を使いたいことがあるので-s...
---g++4.6では-std=c++11というオプションはサポートされてお...
---C++03とC++11の互換性についてはここに詳しい http://d.ha...
-NAOqiを使ったプログラムをC++11でコンパイルしようとすると...
--オプションを-std=c++0xから-std=gnu++0xとしたら全て解決 ...
---c++0xとgnu++0xの違いはよく分からなかった...
7/24
-std::vector<cv::Vec>となると思いきや、std::vectorはFIFO...
-書いた。[[長めの雑記/USB-BlueTooth>#d4817a59]]
-[C++]参照
--初期化の際に有効なメモリを指定しなければならず、また書...
--constを付けた参照は、参照先の変数の書き換えを不可にする...
---参照渡しと値渡しは、渡す側の関数での見た目が同じである...
~そのため参照渡しはconstで行い、変数の書き換えをする場合...
7/15
-ロボット・物品の座標を2次元座標クラスで扱うことにした
--自作クラスを作るより、OpenCVの2次元座標クラスを使うこと...
---OpenCVのクラスならそのままビジュアライズ出来るので便利
--色々クラスがあったので纏めて書いた。[[長めの雑記/OpenCV...
--ついでに長らくよく分からずに使っていたOpenCVの画像構造...
7/14
-bashでの拡張子の一括変更(例は *.fasta -> *.fa)
for i in `ls *.fasta`
do
mv ${i} ${i%.fasta}.fa
done
--%は、末尾から遡って検索して最初に一致した文字列を削除す...
--コピペ用
for i in `ls *.fasta`; do mv ${i} ${i%.fasta}.fa; done
7/13
-グループ、ユーザの編集について
--ユーザの追加はuseraddではなく、adduserを使う
---useraddはデフォルトではホームディレクトリが作られなか...
--グループへの追加はusermodではなく、gpasswdを使う
sudo gpasswd -a username groupname
---usermod -Gは、ユーザの所属グループの書き換えであり、記...
--visudoをemacsで
---
VISUAL=emacs visudo
7/8
-vector<double> hoge にhoge[1][1]とアクセスしたら、32bit...
-[[gitのリモートリポジトリのURLをhttpsにするとpushする度u...
--
git remote set-url origin ssh://morisawa@mizuuchi.lab.tu...
などとする
-1秒未満で乱数列を取得する方法([[参考>http://yoppi.hatena...
--
#include <time.h>
...
srand((unsinged)time(NULL));
を
#include <sys/time.h>
...
struct timeval tv;
gettimeofday(&tv, NULL);
srand(tv.tv_sec + tv.tv_usec);
に変える。
7/6
-rsyncのディレクトリのコピーの仕方
-- -rオプションを付けて、ディレクトリの後ろにスラッシュを...
rsync -r myDir miz:hoge
---スラッシュを付けると、ディレクトリの中身がhogeに展開コ...
7/2
-[[Linux の date コマンドでミリ秒まで出力する方法>http://...
-FormatFactory
--学会の論文集にmpeg1の動画を貼りたいけれど、容量が大きく...
---フレームレートを下げたら画面がボロボロになった。フレー...
6/29
-[[端末のTab押下時の補完機能で大文字小文字を無視させる>ht...
--$HOME/.inputrcに以下の一行を追加するとTab押下時の補完で...
set completion-ignore-case on
-emacsのファイル検索(C-x C-f)で同様の補完設定を行う([[参...
--$HOME/.emacsに下記を追加
(setq read-file-name-completion-ignore-case t)
6/27
-[[C++で順列列挙>http://vivi.dyndns.org/tech/cpp/permutat...
--コンパイルオプション-std=c++11が必要
6/21
-emacs -nwでAltキーでメニューバーにアクセスするのを止める...
--端末でAlt+e kで「キーボードショートカット」を開く。一番...
6/20
-ファイルディスクリプタとかソケットディスクリプタとかにつ...
--LinuxなどUNIX系OSでは,入出力はすべてバイト列(文字列の...
~ディスクリプタは単なる整数で,ストリームを区別する識別子...
~ディスクリプタはプロセスごとの固有の値で,0番が標準入力...
~ディスクリプタの最も重要な特徴は,ファイル・ディスクリプ...
~もちろん,OSの内部ではそれぞれの装置に対して処理内容が全...
~これはオブジェクト指向の「ポリモーフィズム」という考え方...
-[[Pythonでネットワークプログラミング>http://memo.saitode...
--ポート番号を合わせれば、C++で書いたプログラムとソケット...
-Terminatorを導入したがデフォルトのフォントが小さいしイマ...
6/19
~指定した座標にボールを運ばせるようにした &ref(./roombaPu...
- 指定した座標がどこなのか分からない -- [[森澤]] &new{201...
-- 更新しました
- 時々ゆっくりと前後しているのはロボットの角度合わせのた...
#comment
6/18
-/dev/ttyUSB*や/dev/video*と何の機器が対応しているのかを...
--シリアルデバイスの場合
ls /dev/serial/by-id/ -l
--カメラの場合
ls /dev/v4l/by-id/ -l
---/dev/ttyUSB*からのシンボリックリンクが置かれている。フ...
---あるファイルのシンボリックリンクからの被参照を調べるこ...
-[firefox][vimperator]Vimperatorでまず覚えたいコマンドと...
--http://d.hatena.ne.jp/juno_c/20090516/1242492749
-[C++]vectorへのポインタから要素にアクセスする方法(vector...
--(*hoge)[i] もしくは hoge->at(0)
6/17
~NAOはPython, RoombaはC++で動かしたい
-[[c/c++をラップしてpythonで使えるようにする>http://www.q...
--上のサイトだとコンパイルエラーが発生したので[[こちら>ht...
---BOOST_PYTHON_MODULEの引数と、ファイル名(から拡張子を引...
-今後のプログラム
--1. 全部ROSを使って書く → 習得に時間掛かりそう
--2. 全部C++で書く → NAOのプログラムをC++で書くのは下記...
---2.5. Cmakeで作る方法と、強引に必要なライブラリを全部g+...
--3. PythonでNAOを動かすプログラム、C++でRoombaを動かすプ...
--4. PythonでNAOを動かすプログラム、C++でRoombaを動かすプ...
---PythonからC++はできそう。逆は困難。
-C++でNAOを動かす欠点
--プログラムを修正すると一回毎にコンパイルが必要
--実行毎にNAOとの接続が必要(接続には3秒くらい掛かる)
--リスト(関節角度列など)の扱いが面倒
--コンパイル前にconfigureが必要
→今回のプログラムでは大きく問題にはならない。
-2または4 -> やがて1に移行、とするのが良さそう。
~[OpenCV]ROSインストールの過程で入れたOpenCVにnonfree.hpp...
-[[ここで解決>http://stackoverflow.com/questions/27481849...
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev
6/15
-11-201天井カメラの視野: 195 x 260cm(解像度4:3の場合)
--16:9の場合は195 x 346.66cm
6/12
-[[Perl、Python、PHP、Rubyについて>http://qiita.com/raccy...
6/9
-Ubuntuエクスプローラのブックマークの編集
--~/.config/gtk-3.0/bookmarks
6/8
-[[ubuntuでsudoの設定変更に失敗したときの対応>http://te2u...
--(身に覚えがないが)sudoグループから外されてしまった場...
--vmwareの場合、shiftキーを押しながらリブートするとGRUBに...
6/4
-[Ubuntu]Alt+ShiftでIMEが変わるのを無効にする~
1.画面右上のキーボードのアイコンをクリック、設定を選択~
2.「キーボードショートカット」の「次のインプットメソッド...
-[C++]templateを使った関数の宣言と定義を別ファイルに記述...
--HEADER.hに定義も書けばOK
--参考: http://d.hatena.ne.jp/kobapan/20090213/1258493570
6/2
-仮想Ubuntuの容量がいっぱいになりそうなのでディレクトリ構...
cd /
du * -s -m
--/usr/local/src/OpenCV -> 1.88GB
--/usr/share/texlive->400MB
--/usr/share/texmf->140MB
--/usr/share/doc/texlive*->700MB(合計)
--/home/prog/NAO/naoqi-sdk-2.1.0.19-linux32 -> 670MB
--/home/prog/NAO/choregraphe-suite-2.1.0.19-linux32 -> 70...
-仮想UbuntuからホストOSのディレクトリにアクセス
--Dropboxを仮想Ubuntuで同期するとディスクが圧迫されるので...
--http://tamori.3zoku.com/linux/ubuntu_on_win.html の5.1...
---ホームディレクトリにマウント
mkdir /home/morisawa/morisawa-win
sudo mount -t vmhgfs .host:/morisawa-win /home/morisawa/...
--(6/3追記)VMware ToolsはホストOS毎にインストールが必要...
---[[ここを参考にして解決>http://mmmpa.hatenablog.com/ent...
-Dropboxのアンインストール
service stop dropbox
rm ${HOME}/.dropbox* -rf
rm ${HOME}/Dropbox -rf
6/1
-[[xmonadのCapsLock->Ctrl設定法>http://yomi322.hateblo.jp...
5/28
-キャスタの選び方
--車輪の大きさ
---径大→転がり抵抗少ない・凸凹に強い
--素材(主にゴム・ウレタン・ナイロン)
---柔らかい(ゴム):凸凹に強い
---硬い(ナイロン):重たいものを軽く運べる
--床の素材との関係
---フローリングの場合、タイヤが床より柔らかくないと床が傷...
---カーペットの場合、硬い素材を用いるのが(イスなどでは)...
--車輪の種類の組み合わせ
---台車:自在2、固定2(押手側に固定車輪が付くのが一般的)
---ショッピングカート:自在4
5/22
-Ubuntuのテキストファイルのgnome-openの規定のプログラムを...
sudo emacs /usr/share/applications/defaults.list
として、
text/plain=gedit.desktop
を
text/plain=emacs.desktop
に変更する
-PowerPointの動画貼り付け「ファイルからリンク」について
--リンクは絶対パスである(何故相対パスでないのかは不明)。
--ただし、パワーポイントのファイルのあるフォルダは探して...
5/7
-[Windows]テキストファイルを開く既定のプログラムにMeadow...
--解決法 C:\meadow\bin\meadow.exeでなく、c:\meadow\bin\R...
-[[ハードリンクとシンボリックリンクの違い>http://q.hatena...
--パーティション超える場合はシンボリックリンクを使う。
--ハードリンクの有り難みとしてメールがある。
5/6
-UbuntuでのDropboxの設定
--結局[[ここ>http://www.maruko2.com/mw/Dropbox%E3%82%92Li...
$ crontab -e #export EDITOR=emacs 等としないと、nanoが起...
に以下の行を追加
@reboot ${HOME}/.dropbox-dist/dropboxd
-VT-dとは
Intel VTの技術のひとつに、I/O処理の仮想化を支援する「VT-...
VT-dに対応していると、仮想化環境から物理的なHDDやネット...
しかし、VT-dに対応しているハードウェアは意外と限られてい...
5/1
-rsync -rv [同期元]/ [同期先]
--差分だけコピーしてくれる。リモートとローカルのやりとり...
4/30
-[git]仮想環境での更新をpullし忘れて自分の環境で更新して...
git fetch #git pullをした場合はこの操作は不要
git add hoge
git commit -m "fuga"
git merge origin/master #origin/master -> master
-[git]masterとorigin/masterの違い
--masterはローカルリポジトリが基になっていて、origin/mast...
--git commit をするとmasterブランチが更新される。
--git pullは、以下の処理を纏めて行うものである。
---git fetch: origin/masterブランチが更新される。
---git merge origin/master: 今いるブランチにorigin/master...
--git checkout origin/masterとするとorigin/masterブランチ...
4/21
-&ref(fonts.JPG);
--上から、小瑠璃Regular、源真Normal、メイリオ
4/7
-[[USBの限界に挑む! 規格上の接続数127台は可能か?>http:...
--結論は100台くらいが限界。かなり不安定に
--Windows 7はUSBハブを1ポートに5台までしか繋げられない
--一気に接続したらエラー頻発
--メインで使うマウスとキーボードは本体に直接つながないと(...
*長めの雑記 [#af751226]
**テンプレートマッチングに関する勉強 [#l464ebc1]
-http://isl.sist.chukyo-u.ac.jp/Archives/SSII2013TS-Hashi...
-cvMatchTemplateの第4引数(計算方法)
--CV_TM_SQDIFF→SSD(Sum of Squared Difference)
--CV_TM_CCORR_NORMED→NCC(Normalized Cross-Correlation)
--CV_TM_CCOEFF_NORMED→ZNCC(Zero-mean Normalized Cross-Co...
--計算速度はSSD>NCC>ZNCC, 精度は逆順
---Ubuntuの場合は、最適化してコンパイルすると計算速度がNC...
**CV_FOURCC一覧 [#x9d59857]
-CV_FOURCC('P','I','M','1') MPEG-1
-CV_FOURCC('M','P','G','4') MPEG-4
-CV_FOURCC('M','P','4','2') MPEG-4.2
-CV_FOURCC('D','I','V','X') DivX
-CV_FOURCC('D','X','5','0') DivX ver 5.0
-CV_FOURCC('X','V','I','D') Xvid
-CV_FOURCC('U','2','6','3') H.263
-CV_FOURCC('H','2','6','4') H.264
-CV_FOURCC('F','L','V','1') FLV1
-CV_FOURCC('M','J','P','G') Motion JPEG
-0 無圧縮
**構造体に関するあれこれ [#j5e3f844]
-以下の内容は、演算子の優先順位を知れば理解できる。 ''優...
-構造体へのポインタが、構造体のメンバ変数にアクセスする場合
--(*Struct).x = Struct->x
---xが変数の場合は値、ポインタの場合はアドレスが渡される
-構造体が、メンバ変数へのポインタの記憶するアドレスにアク...
--*Struct.x //xはポインタ
---xの記憶するアドレスの中身が渡される
-構造体へのポインタが、構造体のメンバ変数へのポインタの記...
--*Struct->x //xはポインタ
---xの記憶するアドレスの中身が渡される
-構造体が、メンバ変数のアドレスにアクセスする場合
--&Struct.y //yは変数
-構造体へのポインタが、構造体のメンバ変数のアドレスにアク...
--&Struct->y //yは変数
-要するに何がしたいか:IplImage構造体へのポインタをメンバ...
--普通にStruct->IPLIMAGE でOK
**vimperatorrc [#g769dfba]
-[[基本は恒岡君のものをコピペ>https://github.com/ytsunets...
-以下を追加
set editor=emacs
nnoremap h <C-p>
nnoremap l <C-n>
**ソケット通信の仕組み [#o22d2602]
-以下[[ここ>http://memo.saitodev.com/home/python_network_...
-サーバの仕事
--socketでソケットを作成
--bindでアドレスとポート番号を指定
--listenでクライアントの接続を待つ
--acceptでクライアントの接続を受け付ける
--sendやrecvを使ってクライアントのデータの送受信を行う
--closeでソケットを閉じる
-クライアントの仕事
--ソケットを作成した後にconnectを使ってサーバに接続し、通...
**CMakeを使わずに自力でC++NAOqiのプログラムをコンパイルす...
-記入例
g++ main.cpp -I/home/morisawa/2014prog/NAO/naoqi-sdk-2.1...
-ポイント
--naoqiのディレクトリ/lib以下の全てのlib*.soファイルへの...
--naoqiのディレクトリ/libをLD_LIBRARY_PATHに登録しないと...
**OpenCVの行列と画像情報の扱い [#h5db85cb]
-C(構造体)
--画像はIplImage, 行列はCvMatと分かれている。
---仮引数としてのみ使われるメタ型CvArrというものもある。
--OpenCV1.0からずっと変わらない.
-OpenCV2.0ではC++に対応し、どちらもMatクラスになった。
--要素の型があっていれば、そのまま線形代数の演算(積)がで...
--invメソッドを使って擬似逆行列も算出できる。
--擬似逆行列も計算できるらしい。
-以下cv::Matについて
-画像の表示
cv::Mat img = cv::Mat::zeros(500, 500, CV_8UC3);//8bit u...
cv::imshow("windowName", img);
-読み込み
Mat cv::imread(const string& filename, int flags=1)//fla...
-書き込み
bool cv::imwrite(const string& filename, const Mat& img,...
--詳細 http://opencv.jp/opencv-2svn/cpp/reading_and_writi...
-IplImage構造体とcv::Matクラスの変換
--cv::Mat -> IplImage
IplImage iplImage = cppMat;
--IplImage -> cv::Mat
cv::Mat cppMat = cv::cvarrToMat(iplImage);
-カメラキャプチャは、VideoCaptureクラスを定義する. 動画記...
--
cap >> img; //img = cvQuaryframe(cap);に相当
writer << img; //cvWriteFrame(img);に相当
**OpenCVの2次元座標クラスの比較 [#jf3cc279]
以下の3つを比較
-cv::Mat(2,1)
-cv::Point2d == cv::Point_<double>
-cv::Vec2d == cv::Vec <double,2>
このうち、cv::Mat(2,1)は初期化が面倒なので却下
-cv::Point2d(x,y);という初期化ができてほしい
-ただしcv::Matは行列計算がそのままできるというメリットが...
Point2dとVec2dの違い(殆どない。どちらも内積やノルムの計...
-MatからVecへは暗黙の型変換はできるが、MatからPointへはで...
-''Pointはスカラーで割ることはできない''(/演算子は未定義...
-変数の呼び方が異なる。p.xかv(0)。
--そのため、VecとPointどちらも扱える自作関数は作れないの...
--個人的にはv(0),v(1)という呼び方が直感的でなく感じたので...
型変換の方法
cv::Mat(2,1) m, cv::Vec2d v, cv::Point2d p;
m=Mat(v);
v=m;
v=p;
p=v;
p=Point2d(m);
m=Mat(p);
**C言語の分割コンパイルとか依存関係とか [#g6b1d4d1]
-宣言は何回あってもよい。定義が重複すると怒られる。
--定義では名前(識別子)が宣言されて,実際にメモリ領域を...
--宣言では名前(識別子)が宣言されるだけで,メモリ領域は...
--staticを付けると怒られなくなるのは、一度しか定義されな...
-重複定義は、コンパイル時とリンク時それぞれに起こる。
--リンク時の重複定義エラーは、いくつかのオブジェクトファ...
---実体がいくつもあれば、このときに位置が確定しない。
--インクルードガードで防げるのは前者のみ。
--#include"hoge.c"などとすると、hoge.c内の関数が重複定義...
-"定義されていない参照"は、宣言だけされて定義していない関...
--コンパイル時には怒られないので、中間ファイルを作る時点...
---stdio.hとかcv.hとか何度呼び出しても怒られないのはそれ...
-分割コンパイルのメリットは、書き直し時のリコンパイルが楽...
--sita.cがue.cに書かれた関数を使っているとき、sita.cとue....
---本体のリコンパイルのほかはリンクだけやり直せばよい
-gcc hoge.c fuga.c
--hoge.cとfuga.cをそれぞれコンパイルしてリンクする
-gcc hoge.c fuga.c -c
--オブジェクトファイルが2つ作られる。
**USB-BlueTooth [#d4817a59]
-PRINCETON PTM-UBT7を使ってみる
-$ hciconfigで表示された内容<T530(Ubuntu14.04LTS, 64bit)>
--内蔵BlueToothオン, USB-BlueToothオフ
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
DOWN INIT RUNNING
RX bytes:439 acl:0 sco:0 events:21 errors:0
TX bytes:85 acl:0 sco:0 commands:22 errors:0
--内蔵BlueToothオフ, USB-BlueToothオン
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
--内蔵BlueToothオフ, USB-BlueToothオン
hci1: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
UP RUNNING PSCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:606 acl:0 sco:0 events:36 errors:0
TX bytes:939 acl:0 sco:0 commands:36 errors:0
---先にオンした方が若い番号を振られる。
-$ hciconfigで表示された内容<T530(Ubuntu12.04LTS,32bit)>
hci0: Type: BR/EDR Bus: USB
BD Address: F4:B7:E2:E6:7D:C3 ACL MTU: 1021:8 SCO MTU:...
UP RUNNING PSCAN ISCAN
RX bytes:856 acl:0 sco:0 events:36 errors:0
TX bytes:886 acl:0 sco:0 commands:36 errors:0
hci1: Type: BR/EDR Bus: USB
BD Address: 00:1B:DC:06:84:BF ACL MTU: 310:10 SCO MTU:...
UP RUNNING PSCAN
RX bytes:822 acl:0 sco:0 events:33 errors:0
TX bytes:877 acl:0 sco:0 commands:33 errors:0
--下2行が64bitと異なる。
-書いてあることの意味
--hci
---BlueTooth通信プロトコル
--Type:BR/EDR
---BlueToothにはBR/EDRとBLEという2種類の通信方式がある。...
---詳しくは http://blue-crystal.squares.net/doc/ble/index...
--BDアドレス
---MACアドレスみたいなもの。一つの機器が世界で一つのアド...
--ACL MTU, SCO MTU
---BlueToothのパケットには主にACLとSCOの2種がある。
---ACL = Asynchronous Connection-Less(データ通信に使われる)
---SCO = Synchronous Connection-Oriented(音声通信に使われ...
---MTU = Maximum Transmission Unit(あるネットワークにおい...
--UP RUNNING
---対義語はDOWNらしい。
---DOWNのときは$ hciconfig hci0 up とすることで起動できる...
--PSCAN, ISCAN
---Progressive scan, Interlaced scan
---スキャン(走査)の方式
Page: