Closed k-okada closed 9 years ago
cameras -> https://www.youtube.com/watch?v=_CZZjStPckM
perception out of box
@iory gui作るとかというのはどうなった?
シンプルなgui作りました。 https://github.com/start-jsk/2014-semi/pull/110
color histogram matcherは実行してもinputトピックが表れず使い方が分からないので、とりあえずsiftでやってみようと思います。
@aginika 稲垣くん.説明してあげてください.
◉ Kei Okada
2015-03-01 18:46 GMT+09:00 Kentaro Wada notifications@github.com:
color histogram matcherは実行してもinputトピックが表れず使い方が分からないので、とりあえずsiftでやってみようと思います。
— Reply to this email directly or view it on GitHub https://github.com/start-jsk/2014-semi/issues/91#issuecomment-76589952.
@wkentaro どのように使おうとしましたか? launchファイルかコマンドかを張ってもらえると助かります。
よろしくお願いします。
$ roscore
$ rosrun jsk_pcl_ros color_histogram_matcher
$ rostopic list
/color_histogram_matcher/best_match
/color_histogram_matcher/coefficient_points
/color_histogram_matcher/output
/color_histogram_matcher/output_histograms
/color_histogram_matcher/output_reference
/color_histogram_matcher/parameter_descriptions
/color_histogram_matcher/parameter_updates
/rosout
/rosout_agg
ソースを見た感じではinputなどがあるはずだとあるはずだと思ったのですが、color_histogram_matcherがsubscribeしているtopicが見あたらないので、使い方がわかりません。どこを調べたらよいのかなど教えていただけると助かります。
outputをsubscribeしないとinputが出て来ませんね
残念ながらドキュメントがないコードにあたってしまっていますね. https://github.com/jsk-ros-pkg/jsk_recognition/tree/master/jsk_pcl_ros
rostopic echo /color_histogram_matcher/output
とかやると良いかと思います
できました。ありがとうございます。 https://github.com/jsk-ros-pkg/jsk_recognition/blob/master/jsk_pcl_ros/src/color_histogram_matcher_nodelet.cpp#L69 がsubscribe用のメソッドだと思うのですが、これはどこで呼んでいますか? main関数はどこかにまとめて書いているんでしょうか。
nodeletなので,普通の実行プログラムとちょっと違います.
外部にmain関数があって,そこでros::spin()
が呼ばれているので,コールバック関数を登録することしかしていません.
このsubscribeメソッドは https://github.com/jsk-ros-pkg/jsk_common/blob/master/jsk_topic_tools/include/jsk_topic_tools/connection_based_nodelet.h#L73 の実装になっていて, https://github.com/jsk-ros-pkg/jsk_common/blob/master/jsk_topic_tools/include/jsk_topic_tools/connection_based_nodelet.h#L87 によってpublisherを監視していて必要に応じて呼び出されます.
https://github.com/jsk-ros-pkg/jsk_recognition/blob/master/jsk_pcl_ros/src/color_histogram_matcher_nodelet.cpp#L129 これがcallbackとして呼ばれます.
なるほど、そして https://github.com/jsk-ros-pkg/jsk_common/blob/master/jsk_topic_tools/src/connection_based_nodelet.cpp が雛形になっているということですね。
ソースの見方が大体わかりました。ありがとうございます。 color_histogramでも判別をやってみようと思います。
はい、jsk_perceptionとjsk_pcl_rosは大体のプログラムがこの書き方で実装されています
jsk_pcl_ros/color_histogram_matcherを使ってみて、color_histogramでの判別は以下の理由で https://github.com/jsk-ros-pkg/jsk_recognition/blob/master/jsk_perception/src/color_histogram.cpp の方が適しているのではと思うのですが、解釈が間違っているでしょうか?
color_histogram_matcherはソースを読んで姿勢を判別するものだと思ったので
入力が点群か画像か、というような違いだった気がします。
色のヒストグラムを出すなら、おすすめは jsk_perceptoin/rgb_decomposerやjsk_perception/hsv_decomposerで画像をそれぞれの色チャンネルごとに分解して、jsk_perception/signle_channel_histogramでいろヒストグラムを計算するのが良い。
マッチングはcolor_histogram_label_matchかcolor_histogram_sliding_matcherが使えるかな。
https://github.com/jsk-ros-pkg/jsk_recognition/pull/618
サンプルはどこにあるかちょっとすぐには思い出せません.
ありがとうございます。 画像の色のヒストグラムを比較して、物体を判別したいのでそれでやってみようと思います。
サンプルが何もありませんが、ひょっとしたら日曜くらいに追加されるかもしれません
了解です。codeを読んで少しずつ進めておきます。
このような感じでしょうか。 これだと場所までわかりますが、物体を持ったい状態であれば既知なので、今回はhistogram値をベクトルとして距離で物体を判別するという方針でいいでしょうか。
今回はhistogram値をベクトルとして距離で物体を判別するという方針でいいでしょうか。
それでもいいし,とりあえずならやってみたらいいと思います. ヒストグラムの距離は結構奥が深くて,color_histogram_label_matchはいろいろなパターンが試せるようになっています https://github.com/jsk-ros-pkg/jsk_recognition/blob/master/jsk_perception/src/color_histogram_label_match.cpp#L255
了解です。ありがとうございます。
色ヒストグラムが上手く行っていないので、比較的上手く行っているsift_matcherの改良としてbof_object_matcherを作りました。 https://github.com/start-jsk/2014-semi/pull/202
25クラス判別でバークレーの画像内での判別では90%行きますが、テスト画像(data/raw_img以下)だと30%程度です。 https://github.com/wkentaro/2014-semi/blob/bag-of-features/jsk_2014_picking_challenge/data/test_result/test_bof_matching_result.csv (各整数値はロジスティック回帰による判別の確率) Bag of Featuresの頑強性の問題だと思うので、必要であれば実際の環境で撮り直してみようと思います。
実際には4か5クラス判別が最大だと考えられ、テスト結果でFalseでも判別の確率で2番から5番目くらいには入っているので、この判別器を使ってかなり絞れるとは思います。
つぎは実際の環境で試したいと思います。
@iory 今日岡田先生がおしゃったPR2が使っている関節トルクから手先力推定するlaunchです。 https://github.com/jsk-ros-pkg/jsk_common/blob/master/virtual_force_publisher/launch/virtual_force_publisher.launch
root、tip、inputを適宜にbaxterに合わせたら動くはずです すごく適当なLPFしかかけていないので、安定していなければパラメータを変えてみるといいです
ありがとうございます。 やってみます。