2013年1月26日土曜日

libWRP-kinect : C++ OpenKinect(=libfreenect) wrapper library

libWRP-kinectをGitHubで公開しました。
libWRP-kinectはそこそこマシなC++のOpenKinectラッパーライブラリーを目指して居ます。

"そこそこマシな"とか言うと既存のOpenKinect C++ wrapperサンプルに失礼な気もしますが、元はと言えばRAIIもへったくれも無く実行ファイルの偶数回目の起動時はデバイスを扱えずにコケる仕様が放置された微妙な実装のライブラリーなど使いたく無いにも程があるので作りました(╹◡╹)

必要最小限Kinectを扱うには十分な状態には近いと思います。

主な仕様
  • デバイス(=キネクト)を中心としたC++設計
    • 必要ならコンテキスト(≈デバイス制御群)もラップしてある
  • templateレベルでの複数デバイス制御
  • ダブルバッファリング
  • それなりにC++(11)
    • Cの生APIは名前空間に隠蔽
    • 列挙型もenum classで取り扱い
    • startしたポーリングのstopはRAIIで自動化も対応
    • コンテキストの制御スレッドを分離する場合の後始末もRAIIで自動化も対応
    • データの取り出しはstd::vector<as_you_like_type>で
  • ロギングはgoogle-glog
  • OpenKinectでできる事はほぼ全てラップ済み
    • 各種ビデオモード対応
    • 各種デプスモード対応
    • ティルト制御
    • LED制御
検討中の機能
  • USBデバイスIDからのデバイスオブジェクト生成
  • シングルバッファリング
  • トリプルバッファリング
最近は複数台のKinectを使う予定も無く、なんとなく昔書いたラッパーを改めて書き直して公開した様なものです。必要に迫られないとあまり積極的な機能追加は検討しないかも。

もしもC++でOpenKinectを使ってみようかな、そんな折にはお試し頂ければ幸いです(╹◡╹)



0 件のコメント:

コメントを投稿