キーワード:デプスカメラ、Depth Camera
前回デプスカメラでIRイメージが真っ黒になってしまっていたが、これが結構厄介なことになっていた。どう厄介かというと、何も表示されないのが原因でIRカメラのキャリブレーションができないのである(●`ε´●)。カメラキャリブレーションについてはROS Wikiを参照されたし。
ネットでちょっと調べてみたところ、同じような現象が起きてる人がいるようで、ROS questionのページに詳細が載っていた。ROS questionによると、どうやらIRイメージは16ビットフォーマットでチェッカーボードDetectorに渡され、チェッカーボードDetectorは16bitの内、最上位8bitを使って画像を生成しているらしい。そして、最上位8bitの画像に256を乗算し、コントラスト上げることでチェッカーボードDetectorが検出できるようになるとのこと。256を乗算するソースも公開されていたので使わせていただきます(。-∀-)。ついでなので少しアレンジさせていただきました。コントラスト乗算値をParamとして設定できるようにしてます。ソースコードはGitHubを見てください。Param名は「contrast_value」です。
roslaunch openni2_launch openni2.launch
rosrun camera contrast_augmenter
正常に起動できると以下のTopicがPublishされているはずです。
/camera/ir_augmented/image
これがコントラスト乗算後のIR画像である。ちなみに、contrast_value初期値は256になってます。変更したい場合は以下のコマンドで。
rosparam set contrast_value (乗算値)
見づらいですがなんとか表示できるようになりました。あとはカメラ・キャリブレーション時に適当にコントラスト乗算値をいじってあげれば良いはずw