gggggraziegrazie

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

Visual Inertial Odometry(VIO)

Visual informationとInatial sensor(加速度センサやホイールエンコーダ)両方の情報を統合して求めるOdometry。[1]によると、両社のcouplingの程度によりloosely-coupledなシステムとtightly-coupledなシステムに分けられる。前者の代表はPTAMとDSO、後者の代表は[4],[5]だそうだ。後者は名前が付いていないことから、あまりメジャーではないように思える。

相互相関関数

もしも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から型番を引きました。

Active Vision

普通カメラは固定であり、そのためオクルージョンへの対処、パノラマ画像作成などが出来ない。そこでカメラを動かす、または複数枚の画像を使うことで、固定カメラ単体では解決できない問題に対処しようというのがActive Visionと呼ばれる分野。

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

ランクについては、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;

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