TkCalibGUI

TkCalibGUI

このサンプルは、OpenRTM-aist の C++版 に同梱されています。 Python版、Java版 には同梱されていませんのでご注意ください。


概要

GUI 画面を持った RTコンポーネントのサンプルです。TkCalibGUIComp を実行することでサンプル・コンポーネントが起動します。 カメラキャリブレーションを行う ImageCalibration コンポーネント用のGUIです。

本コンポーネントを実行して選択可能リストの中からカメラコンポーネントを指定すると、ImageCalibrationComp と合わせて自動起動し、コンポーネント間のポート接続も自動で行います。 GUI のボタン操作でキャリブレーションに必要なカメラ画像の保存、及び、カメラパラメーターの算出を行うことができます。


コンポーネントの実行条件

OpenRTM-aist C++ の Windows用インストーラーを使ってインストールされた場合は、TkCalibGUIComp.exe を実行するだけで動作します。

ソースからビルドされた場合は、実行条件を整える必要があります。
本コンポーネントでは実行に必要な環境のチェックを行っています。 条件に合わないと以下のようなメッセージダイアログを表示します。指示に従ってインストールしてください。

calib9.jpg
実行条件を満たさない場合に表示されるメッセージ

Windows環境向け

メッセージ内容 対応処理
OpenRTM-aist Python is not installed. OpenRTM-aist Python版 のページから Windows用インストーラーをダウンロードできます。
インストーラーの OS のバージョン(32bit or 64bit)は、OpenRTM-aist C++版に合わせて下さい。
Ttk is not installed. pyttk をインストールしてください。python2.7 には含まれていますが、python2.6 では別途インストールが必要です。
PIL is not installed. PIL をインストールしてください。
NumPy is not installed. numpy をインストールしてください。
rtctree is not installed. rtctree-3.0.1 以上が必要
近日インストーラーを公開予定ですが、それまでは githubのページ の右下の「Download Zip」をクリックし、rtc-master.zip ファイルをダウンロード・展開し、setup.py を実行してインストールしてください。(> python setup.py install)
site-packages\rtctree\rtmidlへのパスをシステム環境変数の PYTHONPATH に追加してください。
例)C:\Python27\Lib\site-packages\rtctree\rtmidl

Linux(Ubuntu)環境向け

メッセージ内容 対応処理
OpenRTM-aist Python is not installed. OpenRTM-aist Python版 のページから一括インストールスクリプトをダウンロードできます。
Ttk is not installed. $ sudo apt-get install python-tk
PIL is not installed. $ sudo apt-get install python-pil.imagetk
NumPy is not installed. $ sudo apt-get install python-numpy
rtctree is not installed. rtctree-3.0.1 以上が必要
github からダウンロードし、setup.py を実行してインストールする手順は Windows環境と同じ。~/.bashrc などに PYTHONPATH を追加してください。
export PYTHONPATH="/usr/local/lib/python2.7/dist-packages/rtctree/rtmidl"

起動画面


calib1.jpg

最初に使用するカメラコンポーネントをリストの中から選択します。このリストには実行環境で使用可能なカメラコンポーネント名が表示されています。 例として、DirectShowCamComp は vc2010 までの環境で選択可能ですが、vc2012 以降は MFCameraComp となっています。


calib2.jpg

[All Activate] ボタンをクリックするとカメラ映像が表示されます。 この時の全コンポーネントの接続状態は下図の通りです。 TkCalibGUIComp 以外のコンポーネントは自動起動され、コンポーネント間も自動接続しています。


calib10.jpg


使い方

チェッカーパターン(キャリブレーションパターン)を用意します。参考として、ここでは checkerboard.pdf を使っています。 チェッカーパターンのコーナー数は、ImageCalibrationComp の Configuration で指定する必要があります。(checker_h, checker_w) 撮影枚数(image_num)も Configuration で変更可能です。

チェッカーパターンは姿勢を変えて指定枚数保存します。[確認] ボタンで保存画像の確認が可能です。[取消し] ボタンをクリックするとその画像は削除されますので保存し直してください。

#br

calib3.jpg calib4.jpg
calib5.jpg calib6.jpg


指定枚数の保存が終了すると [結果表示] ボタンが有効となります。これをクリックするとカメラパラメーター値が表示されます。


calib8.jpg

カメラパラメーターは camera.yml のファイル名でコンポーネントの実行ファイルと同じディレクトリーに出力されます。

  %YAML:1.0
  calibration_time: "Thu May 22 16:38:06 2014\n"
  image_width: 640
  image_height: 480
  board_width: 13
  board_height: 9
  cameraMatrix: !!opencv-matrix
     rows: 3
     cols: 3
     dt: d
     data: [ 5.8272934483011682e+002, 0., 3.3703801084645710e+002, 0.,
         5.8023846162074653e+002, 2.2824562602176763e+002, 0., 0., 1. ]
  distCoeffs: !!opencv-matrix
     rows: 1
     cols: 5
     dt: d
     data: [ -1.4659954975042236e-001, 5.7825601645508595e-001,
         -3.3745642103035984e-003, 1.2569676956708463e-003,
         -9.8011775330916773e-001 ]


画像出力(参考資料)

参考として [保存] ボタンをクリックした時の画像ファイルをシステム環境変数の TEMP、または TMP のディレクトリーに出力しています。
  • ファイル名:capture0.jpg ~ capture4.jpg (5枚保存した場合:グレースケール画像)


capture0.jpg

上記の画像に対して出力したカメラパラメーターを用いて歪み補正した画像も同じディレクトリーに出力しています。
  • ファイル名:undistorted0.jpg ~ undistorted4.jpg (ファイルの番号は capture*.jpg に対応)


undistorted0.jpg

ダウンロード

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.2.0-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

Webサイト統計
ユーザ数:1761
プロジェクト統計
RTコンポーネント292
RTミドルウエア23
ツール20
文書・仕様書1

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

モーションエディタ/シミュレータ

OpenHRI

対話制御コンポーネント群

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム