2007alumni を復活させる
Opened this issue · 14 comments
~/prog/hrp2/demo/2007almuni/
以下は、最近未来館で行っているデモの理想型のようなものがありました。
視覚処理・音源定位処理が走りつつ、常に人を感知して何か反応するループがEuslispでまわっていて、
音がしたり人がきたらそちらの方向を見る、人が近づいたら握手する、
などを自律で行うデモになっていたので、個人的に復活させたいデモNo. 1です。
必要な機能はなんだろう
- 音源定位
- 顔認識
- 動き認識
- 体の何処が触れれたか分かる
みたいなセンサ系があって,あとはここから
- 顔を向く
- 握手する
みたいな動作系があって
- 適当に繋げる部分
があった,というものだったっけ?
はい、そのように記憶しています。
センサ系は、それぞれの認識結果をsubscribeする、
動作系は対応するものを書いておく他、
つなげる部分は何か最近だと良い方法ありますでしょうか。
2007almuniではwhileの中でif文で握手するか、顔をみるか、何もしないか、など
きりかえてたように思います。
(when (assoc :find-human-near r)
(let ((shake-motion (cdr (assoc :find-human-near r))))
(print r)
(print (cadr (assoc :rarm-target shake-motion)))
(when (assoc :rarm-target shake-motion)
(setq rarm-target (cadr (assoc :rarm-target shake-motion)))
(setq head-target (send rarm-target :worldpos)))
(if (cadr (assoc :rarm-speed shake-motion))
(setq rarm-speed (cadr (assoc :rarm-speed shake-motion))))
(when (assoc :larm-target shake-motion)
(setq larm-target (cadr (assoc :larm-target shake-motion)))
(setq head-target (send larm-target :worldpos)))
(if (cadr (assoc :larm-speed shake-motion))
(setq larm-speed (cadr (assoc :larm-speed shake-motion))))
(print (cdr (assoc :hand-motion r)))
(if (cdr (assoc :hand-motion r))
(when (boundp '*ci*)
(send* *ci* (cdr (assoc :hand-motion r)))))
))
これで良さそう。
可視化もrvizでjsk-ros-pkg/jsk_visualization#107 を少し変更して使うのが良さそう
まずは16号機でカメラ使えるようにしましょう。 @YoheiKakiuchi さんにお願いしていいですか?
16号機はなぜカメラが使えなくなっているんでしたっけ?
2014-07-30 15:00 GMT+09:00 Ryohei Ueda notifications@github.com:
まずは16号機でカメラ使えるようにしましょう。 @YoheiKakiuchi https://github.com/YoheiKakiuchi
さんにお願いしていいですか?—
Reply to this email directly or view it on GitHub
#29 (comment)
.
vに移してcatkinにしてから動いてるのを見たことが無いです
#34 でPR2向けに多少復活の方向。
まだ頭しか動かしていない。HRP2対応もプログラムレベルでは一応すぐできるようになっているはず。、、
とりあえずこの状態で冷蔵庫のデモに組み込んで、その後に整理して機能拡充する予定。
hydroじゃないとすごくやりづらいので、hydro対応を至急進めます。
また、demoじゃなくてデフォルトのpr2.launchで上がるようにすべきかもしれない。
さらっと書いてみて気づきましたが、認識結果だけでなく、イベントのシナリオも同一プロセスの中でのpub/subにすると良さそうです。
認識結果からシナリオのイベントが発火する感じですね。そうすると外部からシナリオを直接発火させるというのも可能になります。プログラムとしては綺麗に面白いコードが書けそうな気がしますね。
さらっと書いてみて気づきましたが、認識結果だけでなく、イベントのシナリオも同一プロセスの中でのpub/subにすると良さそうです。
これ,良いですよね.で具体的にどういうフォーマットにしたらいいんだろう,って前々から思ってきていて
たとえば,localizationの結果なんかがpostgresql に入れているけど,結局ヘッダと文字列一行でもいいのな.
あるいは,一行だけどど,{event:"find person", location:"1.2 3.3 4.4",
person:"ueda"}みたいにするか.
Reply to this email directly or view it on GitHub
#29 (comment)
.
とりあえず
- 顔認識
- 音源定位(今日改良する)
- 顔の方を向く
は現状できている。 - 適当につなげるところ
を今日アップデートしてrvizとかに良い感じの表示が出きるようにする(そのためのPictogram)
音源低位は改善。
ところで動き検出って何使ってましたっけ? オプティカルフロー?
今なら点群レベルでやったほうがいいかも
フローに基づく領域検出,みたいなのだった気がします.ちがうかも.
◉ Kei Okada
2014-12-15 13:52 GMT+09:00 Ryohei Ueda notifications@github.com:
音源低位は改善。
ところで動き検出って何使ってましたっけ? オプティカルフロー?
今なら点群レベルでやったほうがいいかも—
Reply to this email directly or view it on GitHub
#29 (comment)
.
フローはいってましたっけ?
背景差分少し試してますが、首が動くと致命的ですね。
点群をオドメトリ原点相対に直して、点群で差分見るのがよさそうに思えます
2014年12月16日火曜日、Shunichi Nozawanotifications@github.comさんは書きました:
フローはいってましたっけ?
—
Reply to this email directly or view it on GitHub
#29 (comment)
.
from iPhone