3D LiDAR(Light Detection and Ranging)センサーは、距離測定や3次元地図作成などのアプリケーションで非常に有用である。Livox Mid-360は、安価であるにも関わらず、高性能な3D LiDARセンサーの一つである。
ここでは、Livox SDK2とMid-360 Communication protocolをベースにWindows環境で動作するMATLABから、Livox Mid-360のデータをリアルタイムで取得するMEX関数を開発した例をステップバイステップで紹介する。
MATLAB テキスト(基礎)(pdf形式)(2007/10/01 update) MATLAB テキスト(グラフィックス)(pdf形式)(2003/12/12update) MATLAB テキスト(最小2乗法)(pdf形式)(2003/12/12update) MATLAB C言語とMATLABとの違い(2000/04/17) |
2011年11月に出版された,MATLABハンドブック第四版では,第三版以降のMATLABの使えなくなった関数など,細かい修正を行った.修正後,新たに,文法の点で,特筆すべき点を見落としていた点が見つかったので,ここに公開しておく.
MATLAB_tilde.pdf
MATLABのhist関数とhistc関数の違いで注意すべき点について書いた。
histandhistc.pdf
MATLABで,整数化する関数は,round,floor,fix,ceilなどの関数が用意されている.
一般には,四捨五入や,切り捨て,切り上げなどの用途で,データの整数化に使用するが,どの関数を使うのが良いの
であろうか?実際に調べてみた.
roundfloorfix.pdf
MATLABで北陽電機社製のレーザレーダのデータを取り込むには?(2011.01.18→2013.07.24)
MATLABは,Javaをサポートしているため,Javaの関数を使えば,一応,シリアル通信のデータの取り込みは可能ですが,取り込み速度が遅く,また,失敗した場合,MATLAB自体が不安定になるなど,あまり実用的ではありません。
そのため,ここでは,法政大学小林一行研究室で使用している,rs232cj2ドライバを紹介します。その具体例として,北陽電機社製のレーザーレーダTOP-URGの取り込みスクリプト例を示します。このプログラムは,MATLAB用リアルタイム画像取り込み常駐プログラムであるvcapg2と同様に自律ロボットのコンペティション(IGVC,つくばチャレンジ)などでも実際に使用しているMATLAB用常駐プログラムです。ちなみにスクリプトを書き換えれば,シリアル通信を行う様々なセンサ,例えば,GPSや,ジャイロセンサ,気圧センサ,加速度センサなどにも対応可能です。
使用するCPUの速さにもよりますが,北陽電機社製のレーザーレーダTOP-URGの場合,遅くとも10Hz程度,平均では,30Hzでデータ取り込みを行うことが可能です。
対応ソフト: MATLAB5.3 or later
対応OS : WindowsXP or later 32bit OS,64bit OS (64bitOSの確認は,Win7のみ)ともに対応
対応機種 : UTM-30LX,URG-04LX-UG01(多分,他機種でも若干の変更で対応できると思います.)
MATLABで,北陽電機社製のレーザーレーダのデータを取り込むには rs232cj2.pdf
rs232cj2 and MATLAB Scripts for Hokuyo TOP-URG rs232cj2.zip
MATLAB Handbookの補足資料
MATLABのハンドルグラフィックスを使い、画面上のマウスの動きを記録、表示する例を紹介する。
http://www.ikko.k.hosei.ac.jp/~matlab/mathand3/mousetracking.pdf
Hough変換は、投票をベースにしたアルゴリズムである。画像座標系とMATLABの配列座標系など数値が違うため注意して扱う必要がある。ここでは、MATLAB,C言語を例にHough変換の実装をもとに解説を行う。
Hough変換の数値と画像座標系を合わせるには、