gggggraziegrazie

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

相互相関関数

もしも2つの信号が同じ周期であれば、合成信号は2つの信号が強め合ってできたものになる。そのため相関関数をグラフ化すると、元の信号と同様の周期で極大・極小が現れる。ただし、観測方法・タイミングの問題等で、それぞれの信号が何の補正もなしにぴったり重なることは少ない。そのため、信号を正規化したり、生値ではなく偏差で表したり、時間方向に調整したりする必要がある。

{ \phi_{xy} = \frac{f_1^*(t)f_2(t+T)}{N} }
{*}複素共役を表す。信号が実装であれば無関係。Tは時間方向のオフセット値。

このオフセットを変えながら相互相関の値を求めることで、どのオフセットが最適か(どれだけの時間方向のずれがあるか)を調べることも可能。

なお、{f_1とf_2}が同じ事象(同一ではないものの、同じ対象から測定した)の場合、自己相関と呼ぶ。

Ubuntu16.04にnVidia製グラフィックカードのドライバをインストールする方法

nVidiaグラフィックカードのドライバをインストール必要があり、[1]の手法を試したのですが上手く行きませんでした。ただし、この時のインストールは新規ではありませんでした。インストールしたノートPCには一度インストールしたことがあり、なぜだか忘れたけど一度アンインストールした状態でした。そこで[2]を参考にして、nvidia-*とcuda*をremoveしたところ、上手くインストールできました。なお私がインストールしたのはnvidia-410です。

Ubuntuのバージョンには依存せずに浸かる手法と思いますので、ご参考になりましたら幸いです。

私の環境

*これは[3]を元にグラフィックカードのIDを調べ、[4]でIDから型番を引きました。

ロボット系国際学会について調べてみた

ランクについては、Conference Ranksというwebサイトを使用して調査を行った。なおランキングの表記については、 サイトで使用している右記を用いる:B5 < ... < B1 < A2 < A1。


\begin{array}{c|c|c}
\hline
Name & Organization & Ranking & Note \\ \hline
ICRA & IEEE &A1 & \\
IROS & IEEE/RSJ &A1 & \\
ISR & IFR & A & 2年に1度開催\\
FSR & 不明 & A & 2年に1度開催 \\
RSS & Springer &A2 & 知り合いの先生に聞くとこれが最高峰と仰っていたけども?\\
CASE & IEEE & B1 & \\
RO-MAN & IEEE & B1 & \\
ROBIO & IEEE &B1 & \\
ICAR & IEEE & B2 & \\
Humanoids & IEEE &B2 & \\
SII & IEEE/SICE & 不明 & \\  \hline
\end{array}
\
調査日:2019年3月1日。ランキングは変動がありえるので、上記は参考程度にご覧ください。また閲覧するサイトにより変動もありえます。そのため、最終的にはご自身で責任をもって調べるようお願いいたします。

英語論文を書く時のお役立ち情報

を目指して、適宜追加していきます。ただ本質的には日本語で書くときも同じだと思います。

  • "just", "only"などの単語は、人の研究について触れる際に使わないこと。失礼です。
  • 例を上げたい場合は、"XXX such as YYY etc"などとするとスムーズです。
  • 〜する必要がある、と言いたい場合、"have to"を使うと必要性が高いことを意味します。大抵は"need"を使うとより穏やかでよいです。

ROSでXX_msgs::YY::ConstPtrをXX_msgs::YYに変換する方法

例えばsensor_msgs::LaserScan::ConstPtrをsensor_msgs::LaserScanに変換したい時があるかと思います。sensor_msgs::LaserScan::ConstPtrの実体は、boost::shared_ptrになります。そのため、

boost::shared_ptr<sensor_msgs::LaserScan> laserscan_ptr = boost::const_pointer_cast<sensor_msgs::LaserScan>(laserscan_const_ptr);
sensor_msgs::LaserScan laserscan = *laserscan_ptr;

とすれば変換することができます。

PCLを使った点群の軸(直線)を推定する手法

他にも色々とあるんだと思いますが、ここではRANSACとPCAを使った点群の軸(直線)を推定する手法について紹介します。

RANSAC(RANdom SAmple Consensus)

RANSACとは、ロバスト推定の中の1つの手法です。ロバスト推定とは、データの中に外れ値が含まれていることを仮定し、その外れ値の影響を排除しながら正しいモデルを推定する手法を言います[1]。RANSACでは、モデル候補を幾つか推定し、その中から一番精度の良いモデルを選択することで、外れ値の影響を排除しています。まずモデル推定に必要な数よりも多めにサンプルを選び出します。次に選び出したサンプルを元に、幾つかのモデル候補を推定します。そして推定したモデルを評価します。最終的に、最も評価の高かったもの(誤差が少なかったもの)をモデルとして採択します。これがRANSACの概要です。詳細については、[2]や[3]をご覧ください。

PCLでは、このRANSACを使って様々なモデルの推定が可能です。詳しくはこちらをご覧ください。直線推定の実装方法については、下記のPCL中のテストコードが参考になります。
github.com

PCA(Principal Component Analysis, 主成分分析)

PCAは、分散を最大にする軸をデータから抽出します。[4][5]。