BarCodeReader実行のスクリーンショット
ARMarkerReader実行のスクリーンショット
バーコードを読み取るソフトウェアライブラリ。
2次元マーカからカメラの位置姿勢を検出するためのソフトウェアライブラリ。
Img.idlの定義
module Img {
/* vector and matrix type */
typedef double Vec3[3];
typedef double Mat44[4][4];
/* image */
enum ColorFormat
{
CF_UNKNOWN, CF_GRAY, CF_RGB
};
struct ImageData
{
long width;
long height;
ColorFormat format;
sequence<octet> raw_data;
};
/* camera image */
struct CameraIntrinsicParameter
{
double matrix_element[5];
sequence<double> distortion_coefficient;
};
struct CameraImage
{
RTC::Time captured_time;
ImageData image;
CameraIntrinsicParameter intrinsic;
Mat44 extrinsic;
};
struct TimedCameraImage
{
RTC::Time tm;
CameraImage data;
long error_code;
};
}配列内容
カメラID, 物体ID, 認識候補No, 座標系No, 認識確度, エラーNo, 予備1, 予備2, r000,r001,r002,t0x, r010,r011,r012,t0y. r020,r021,r022,t0z,
RecognitionService.idlの定義
interface RecognitionService {
long getModelID(); void setModelID(in long ModelID);
};
TOP.
|-- UFV --- ライブラリソースコード
| |-- CLUEReaderImpl
| |-- DetectorImpl
| `-- ImagerImpl
|-- doc --- ドキュメントなど
|-- include --- ヘッダファイル
|-- lib --- サードパーティのライブラリファイル
`-- rtc
|-- ARMarkerReader --- ARMarkerリーダコンポーネント
|-- BarCodeReader --- 1次元バーコードリーダコンポーネント
|-- Imager --- 画像コンポーネント(サンプル)
| `-- share
| `-- CameraParam
`-- ObjectIdProvider --- オブジェクトIDコンポーネント (サンプル)
コンパイル&インストール
$ ./configure ; make ; sudo make install $ sudo ldconfig
ARToolkitPlus-2.1.5/SConstruct を修正
$ diff ../ARToolkitPlus-2.1.5/SConstruct SConstruct
2c2
< vrs.Add("prefix", "installation directory", "/usr")
---
> vrs.Add("prefix", "installation directory", "/usr/local")
14c14
< arlib = env.SharedLibrary("ARToolkitPlus", sources)
---
> arlib = env.SharedLibrary("ARToolKitPlus", sources)コンパイル&インストール
$ scons $ sudo scons install
リンク作成
$ cd /usr/local/lib $ sudo ln -s libARToolKitPlus.so libARToolKitPlus.so.2 $ sudo ldconfig
コンパイル
$ cd $(TOP)/UFV $ ./configure $ make
コンパイル
$ cd $(TOP)/rtc/BarCodeReader $ make -f Makefile.BarCodeReader
コンパイル
$ cd $(TOP)/rtc/ARMarkerReader $ make -f Makefile.ARMarkerReader
コンパイル
$ cd $(TOP)/rtc/ObiectIdProvider $ make -f Makefile.ObiectIdProvider
コンパイル
$ cd $(TOP)/rtc/Imager $ make -f Makefile.Imager
+----------+
| Imager |=>--+
+----------+ |
<Img::TimedCameraImage>
| +------------------+
+----<=| |=> --- <RTC::TimedDoubleSeq> ---
| BarCodeReader |
| or |
| ARMarkerReader |
+--#=| |
| +------------------+
<RecognitionService>
| +------------------+
+--#=| ObjectIdProvider |
+------------------+
USBカメラをPCに接続し、以下を確認する。
注): カメラの設定方法は機種や接続方法によって異なります。
"端末"からBarCodeReaderコンポーネントを起動する。
$ cd $(TOP)/rtc/BarCodeReader $ ./BarCodeReaderComp
別の"端末"からImagerコンポーネントを起動する。
$ cd $(TOP)/rtc/Imager $ ./ImagerComp
別の"端末"からObjectIdProviderコンポーネントを起動します。
$ cd $(TOP)/rtc/ObjectIdProvider $ ./ObjectIdProviderComp
マーカはARToolKitPlusパッケージに含まれている画像
ARToolkitPlus-2.1.5/id-markers/bch/BchThin_????.png
を拡大印刷してご利用ください。
Imagerコンポーネントが出力する画像データに含まれるカメラ内部パラメタは、 デフォルトでは以下の値が用いられます。
レンズ歪み: [ 0.0521901, -0.137511, -0.00118309, 0.00110536 ] カメラパラメタ: - [ 533.679, 0, 322.334 ] - [ 0, 532.424, 244.238 ] - [ 0, 0, 1 ]
Imagerコンポーネントは、デフォルトでは
$(TOP)/rtc/Imager/share/CameraParam/Qcam200V.yml
からカメラ内部パラメタを読み取ります。パラメタ値を変更するには、 上記ファイルを書き換えるか、 別のファイルをRTSystemEditorのコンフィギュレーションで指定してください。