gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

roslaunchでパラメータの値を設定する方法

roslaunchにおいては、タグまたはタグのどちらかを使えば、パラメータの値を設定できる。*下記ではとの両方で記述しているが、どちらか片方だけ記述すればよいことに注意。 *下記では変数型としてstrを記述しているが、他にもint, double, bool, yamlも使…

Canonical Scan Matcher

Canonical Scan Matcherは、連続するscanデータの移動量を推定する手法です。Visual OdometryでPnPを使って移動量を推定するのと、等価の出力といえます。まだ読み進めていないのですが、アブストラクトを読む限り、移動量が大きい場合はエラーが大きくなっ…

Daynamo - Autodesk tool

Dynamoには「Dynamo」と「Dynamo Studio」の2種類があります。前者はAutodesk Revitの拡張ツールでOSSです。また無償でダウンロードできます(そもそものRevitが有償ですが)。後者のDynamo Studioは、スタンドアローンなツールです。こちらは有償です。た…

RhinoVAULT - Rhinoceros plugin

ETH Zurichが開発したプラグインで、Compression-onlyな構造を創造・探求するのに使います。美しい形状を創り出すだけでなく、構造体の原理を理解するのにも使えます。興味がある方は、[1]にTutorial動画が沢山ありますので、そちらをご覧ください。 参考文…

Millipede - Grasshopper plugin

Millipedeとは、Grasshopperのプラグインの1つで、構造解析や最適化を可能にします。数値解析や線形システムの解析解の算出、固有値計算、メッシュのベクトル表現化、メッシュの統合・フィルタリング、固有モード解析なども出来ます。出来ること一覧は、[ht…

Firefly - Grasshopper plugin

Fireflyとは、Grasshopperのプラグインの1つです。つまりは、Rhinocerosのプラグインとも言えます。このプラグインを使うことで、GrasshopperとArduino, Arduinoと接続したデバイスの間でのデータの入出力が可能となります。またGrasshopperのVisual Progra…

Grasshopper - Rhinoceros plugin

本記事では、Grasshopperとはなんぞやについて記述します。どう使うのか等の実践的な話については、お手数ですが他サイトを確認くださいますようお願いいたします。Grasshopperとは、3DモデリングソフトRhinocerosのプラグインです。元々はプラグインでした…

k-d tree

k-d treeとは、K-Dimensional treeの略で、K次元のデータの最近傍点を探索するための手法です[1]。検索対象のデータ数をとした時、データの次元数が大きすぎると線形探索と計算量が変わらないそうです[1]。なお線形探索とは、全探索の1種で一個ずつ検索対象…

ROSを使ったOrbbec Astra Proのキャリブレーション

Astra Proは手頃な価格でかつデプスの有効範囲が長め(8m)なRGB-Dカメラです。このカメラは専用のキャリブレーションツールや、工場出荷時にキャリブレーションが行われている訳ではありません。そのため自分でキャリブレーションツールを探し、キャリブレ…

Sparse Pose Adjustment(SPA)

SPAとは、Konoligeらによって提案された、2D Pose Graphの最適化を効率よく行うための手法です[1]。この手法は線形システムに対して使え、direct sparseコレスキー分解を使うことで効率化を図っています。SRIが開発したopen_karto[2][3]というSLAM向けのライ…

コレスキー(Cholesky)分解

コレスキー分解は、LU分解やQR分解と同様に線形方程式を解くのに使われる手法です。LU分解よりも高速かつ省メモリで解くことができます。これは[3]によると、正定値行列の全固有値は正の値を持つため、LU分解で言えばLを求めると勝手にUも求まることになるそ…

QR分解

QR分解は、の実行列を、次の直交行列との上三角行列Rとの積に分解する操作を指します。なおこの分解は必ず成立します[1]。QR分解は線形最小二乗法を解いたり、[4]曰く行列の固有値を求めるために使用されます。その計算手法としては、ハウスホルダー法やグラ…

LU分解

正方行列を、下三角行列(Lower triangular matrix)と上三角行列(Upper triangular matrix)の積に分解する操作を指します。連立方程式の厳密解を求める際に使われます。また の様に左辺が変化する場合は、計算を各方程式毎に行う必要があるため、計算量がとな…

Branch and Bound(分枝限定法)法

分枝限定法とは、組合せ計画問題で厳密解を求めるための手法の1つです。組合せ計画問題とは、ある関数を最大化するパラメータの組の様に、パラメータの有限個の組み合わせの中から目的を満たす組を求める問題です。分枝限定法は、条件分岐を駆使して問題を…

github上のプロジェクトをカスタムしてbitbucket上に自分専用プロジェクトとしてコミットする方法

下記のページがわかりやすいです。 簡単に説明すると、まずbitbucket上にからのレポジトリを作り、そこにgithub上のレポジトリをpullします。その上で変更点をadd & commitするという流れです。Forking a Github repo to Bitbucket · GitHub

プログラムを書く際に注意すべき点

順次追記していきます。 プログラムを書く際、関数の引数として与える数字の単位系・座標系は、クラス毎・ファイル毎に揃えよう 単位系・座標系が入り混じると、想定と異なる単位系・座標系で数値を入力し、想定と異なる挙動に悩まされる可能性が高まります…

英語の文章を書くときに便利なサービス

ここでは説明を省略します。お手数ですがご自身で内容の確認をお願いいたします。 Grammaly : 文法的な間違いや冠詞・単語の使い方が不正確な場合に指摘をしてくれます www.grammarly.com Reverso Translation : 文法というよりも、冠詞・単語の使い方の間違…

ROSにおけるCMakeLists.txtの書き方

ROS

逐次わかったこと、気づいたことを追記していきます。catkin_package( # ここには自ら(このCMakeLists.txtが含まれているROS Packageのことを書きます INCLUDE_DIRS # headerファイルを探しに行く時のルートディレクトリを記載します → 1)へ LIBRARIES # ad…

PCLの中のGeneralized ICPの使い方

GICPをテストコードを元に使ってみたのですが、うまく収束せず困っていました。そこでgithub上で何かいいサンプルはないかと思って探していたところ、ちょうどよいものがありましたので共有します!ETH ZurichのAutonomous system labが公開しているrepositr…

PCL(Point Cloud Library)の使い方が書かれた資料

PointCloudを使ったコードを書く場合、PCLがよく使われるものと思います。サンプルやテストコードを見ることで使い方を知ることはできますが、解説は殆どありません。今回PCLの中のRegistrationについて書かれた論文がありましたので、メモ代わりに記事にし…

TeXですく数行にまたがった図を貼る方法

TeX

下記の様に、*を付けるとできる。\begin{figure*} \end{figure*} 参考文献 Wide figure/table in a twocolumn/multi-column document – texblog

latexとplatexとuplatex

LaTeXは一般的なtex。platexとuplatexは日本語用の環境を追加されたtex環境。そのため、英文で論文などを書きたい場合はLaTeXを使うこと。反対に、日本で論文を書きたい場合はpLaTeXかupLaTeXを使うこと。 参考文献 Publishing TeX - Wikipedia upTeX,upLaTe…

Dockerで0からコンテナ接続までのコマンドの流れを図にしてみた

Docker初心者のため、どのコマンドを使えばどうなるかの関係がイマイチ覚えづらいです。また少し使った後にしばらく間が空くと、完全に流れを忘れてしまうのが悩みでした。そこで流れを図にしてみました。今回の対象は、pull, build, create, run, start, st…

NDT( Normal Distributions Transform )

NDT[1]とは、2つの点群のマッチングをさせる手法の1つです。点群マッチングとは、ある点群(参照点群と呼ぶ)に対し、ある点群(入力点群と呼ぶ)がどれだけ重なっているか、重ねるためには点群をどの様に移動させるべきかを判断するための手法です。点群…

install scikit-sparse on win7(halfway)

コレスキー分解をWindowsのPython環境で使いたかったので、上記を試してみました。pip install自体は通ったのですが、目的であるコレスキー分解はまだ動いていませんが。。。 構築環境 Windows7 Python 3.6.5 scikit-sparse 0.4.3 pip 10.0.1 IDE: VSCode 1.…

"図解・ベイズ統計「超」入門 あいまいなデータから未来を予測する技術"を読んで

従来の統計学とベイズ統計学の違い 乗法定理 ベイズの定理 例題1. 理由不十分の原則 ベイズ更新 例題2. 1回目のデートで良を得る確率 事前準備 確率分布 例題3. 従来の統計学とベイズ統計学の違い 従来の統計学 - データについての不確実性を確率で表現・推…

NVIDIA製GPU搭載のハイスペックノートPCを探してみた

画像処理などをリアルタイムで行いたい場合、CPUはもちろん、ハイスペックなGPUが搭載されているとストレスがないです。またDeep Learningなどの機械学習を行う場合、OSSのライブラリはCUDAが必要なことが多い気がします。CUDAのインストールには、NVIDIA性…

under-determinedなシステム

under-determinedなシステムとは、変数の数に対して制約事項が足らないシステムのことです。参考文献のwikipediaを見ると、Fig.1の様な連立方程式があります。under-determinedなシステムでは、必ずしも解が求まるとは限りません。解が求まる場合は、ガウス…

Lpノルムとマンハッタン距離、ノルム

ノルムとは、次元のベクトルおよびなるに対して、 で表され、と表記する[1]。 そもそもノルムとは、 任意のベクトルがあるとき、下記の3つの性質を満たす関数のこと。 (三角不等式) マンハッタン距離 の時、つまりノルムはマンハッタン距離とも言われる。…

Kaze特徴量

Kazeは、非線形拡散フィルタを用いて算出する特徴量。SIFTやSURFなどのガウシアンフィルタ(線形拡散フィルタ)を使った特徴量は、物体のエッジ部分がぼやけてしまい、局所的な特徴がうまく取れないことがあった。それに対し、非線形拡散フィルタを使うKazeは…