Open ykawamura96 opened 5 years ago
@ykawamura96
河村くん
山口です。 僕は2/24以降はかなり暇になるので、手伝えると思います。
@ykawamura96 上の4つについてそれぞれ,どういうプログラムが必要か,それはどこにありそうかリストを拡張してもらえればとおもいます.特に認識周りはjsk_recognitionなどから似たようなものがあるはずで,なければなにかおかしいので,自分で作る前に,聞いてみましょう.
また,ストーリー全体で何が残っているか書いてみましょう.
@k-okada https://github.com/jsk-ros-pkg/jsk_demos/issues/1255#issue-409160468 のリストを拡張して, ストーリー部分を追加しました.
また, 今日は
1) ハンドで持った荷物周辺のpoint cloudを抽出するためには, Attention Clipperを使うと良いということを @pazeshun 先輩に教えていただきました.
戒田です。 自分の担当するところですが、
1:部屋までの移動
2:かごを持ち上げる
です。 これまでにできていることは
「1:部屋までの移動」
「2:かごを持ち上げる」の1つ目のかごにアームを伸ばす
です。 かごを持ち上げるためには、「指先を工夫する」か「持つ時のアームの角度を調整する」かが必要そうなので、まずそこを解決したいと思います。
ROSをインストールする方法 http://wiki.ros.org/kinetic/Installation/Ubuntu
JSKのFetchを使う方法 https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_fetch_robot#setup-environment
Fetchで地図を作る方法 http://docs.fetchrobotics.com/navigation.html
catkin build出来ない場合
sudo apt install python-catkin-tools
@YutoUchimi @Yu1313321
LineSegmentDetector
を使おうと思って、jsk_pcl_ros/sample/sample_line_segment_detector.launch
を立ちあげたのですが、/line_segment_detector/debug/line_marker
というtopicの中身が空(?)です。どうしたらいいでしょうか。
Markerが見えず、pointcloudしか見えない図。
rostopic echoのログ
$ rostopic echo /line_segment_detector/debug/line_marker
header:
seq: 5407
stamp:
secs: 1486279001
nsecs: 53697817
frame_id: right_hand_camera_rgb_optical_frame
ns: ''
id: 0
type: 5
action: 0
pose:
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
scale:
x: 0.01
y: 0.0
z: 0.0
color:
r: 1.0
g: 0.0
b: 0.0
a: 1.0
lifetime:
secs: 0
nsecs: 0
frame_locked: False
points: []
colors: []
text: ''
mesh_resource: ''
mesh_use_embedded_materials: False
---
@ykawamura96
毎回fetchの実機で認識をするのは大変だし、rosbagを撮って自分のPCでplayするのもめんどくさいことがあると思います。
そういうときは、dump-loadable-structure
という関数を使うと、euslispの変数をファイルに保存できます。
例:
(setq cube (make-cube 100 100 100))
(dump-loadable-structure "cube.l" cube)
中尾です。帰省中でゼミになかなか行けていなくてすいません。 自分の担当するところですが、
の予定です。 また、ドアをノックして、留守の場合に何か別の動作をするのも面白いかなと思い、時間があれば行いたいと思います。 2月27日あたりから復帰できそうです。
@Yu1313321 @708yamaguchi
報告ありがとうございます。
線検出を行った結果、もしその線をサポートする点の数が少なすぎると線としての信頼度が低いので、LineSegmentDetector
では線を構成する点の数がある一定数min_indices
より少ない時は除外するという仕組みになっています。
sample_line_segment_detector.launch
を読むと、RGB-Dカメラから得られる点群(トピックで言うと/right_hand_camera/depth_registered/points
)をvoxelgrid
というノードによって間引いてから線検出を行っているようですね。
つまり、線検出の入力に使う点群の点の数がそもそも少なくなっていて、線を構成する点の数がmin_indices
を下回りやすくなっています。
で、どうやったら線がちゃんと出てくるのかという話ですが、
roslaunch jsk_pcl_ros sample_line_segment_detector.launch
を起動した後、別のターミナルで
rosrun rqt_reconfigure rqt_reconfigure
としてline_segment_detector
のパラメータを変更してみるといいと思います。
たぶんmin_inliers
を小さくするとrvizでマーカーが見えるようになると思います。
他のパラメータもぜひいじってみてください。
担当しているところの詳細を考えました。
まず箱を取る動作ですが、これは箱の位置が決まっているため、認識を用いる必要もなく、決め打ちの制御で事足りると思います。 ただ今の状態では箱の手を伸ばして縁をつかめても、うまく持ち上げることができないので、fetchの指か箱に細工をしないといけません。(指の方を変えると他の人の影響がありそうなのでおそらく箱をいじります。)
次に部屋の前までの移動は既に完成しています。
最後にドアを開ける動作を追加の課題で行おうと思います。 ドアノブを認識して、そこに手を伸ばしてドアノブを掴み、ドアノブを回して、ドアを引くという動作をすればいいと考えており、とりあえずドアノブの認識について調べています。 jsk_pcl_rosからいくつかのパッケージを候補にあげており、現在それらを@708yamaguchi さんや @YutoUchimi さんに手伝っていただきながら、動作確認をしている状況です。
また学科PCを返却してしまったため、新しいPCのセットアップも行いました。 以下のURLに沿うとうまくいきました。 https://github.com/jsk-ros-pkg/jsk_demos/issues/1255#issuecomment-465892831
僕の担当するところですが、
@nakaotatsuya
fetchの中では/speech_to_text_google
というtopicが出てて、これをsubscribeすれば手軽に音声認識できるのですが、単純にrostopic echoすると表示がおかしくなる(rostopic echoはstring[]型のトピックを表示できない)ので、以下のプログラムを使ってtopicを出し直すといいと思います。
https://gist.github.com/708yamaguchi/b2d82fc7557ba5fc3512c9427df32be2
fetchでwrench controlを使いました。 人間とハイタッチするときには手を止めて、人間が手を離すと再びfetchが手を動かし出すデモ動画です。
撮影したビデオは、gifファイルに変換するとgithubに投稿できます。以下のプログラムを見てもらって、
./convert_to_gif.sh video.mp4
のようにしてもらうと出来ます。 https://gist.github.com/708yamaguchi/d0fbf5a670060bffc865d1bc68d94b67
gifファイルを回転したいときは、
convert -rotate 90 input.gif output.gif
のようにすると良いです。
@ykawamura96 動画、良い感じだと思います。 動画と一緒にrosbagも撮っていたと思うので、自分への備忘録も兼ねてリンクを貼っておきましょう。
箱を取り上げて色を確認し、カゴに入れる動作が一応完成しました
ikが解けないことが多いので、いい感じの初期位置を与えたり、箱の持つ向きを変の長さに応じて変えるなど、工夫するべきところはまだ残っています
ikが解けない==ハードウェア的に手が届かない,かどうかはよく確認しないと,もしかしたら
(:inverse-kinematics (&rest args) nil)
みたいなプログラムになっているのを中身見ずに使って,ikが解けません,といっているとかっこわるいので,解けない時には
ぐらいは視野に入れておきましょう.
@k-okada @708yamaguchi 適当な初期値を与え、角度の制限を緩めることで、ikを解きやすくしてデモの動画をとりましした。 デモの動画は以下です。 robugfileは、
roslaunch jsk_2018_10_semi play.launch bagfile:=/home/mech-user/.ros/2019-03-14-19-23-01.bag
(bugfileの場所は適当な場所を指定する)
別のターミナルで
roslaunch jsk_2018_10_semi delivery_box_detection.launch
別のターミナルで
roscd jsk_2018_10_semi/
rviz -d ./rviz/fetch_config.rviz
とすれば見れると思います。 rviz : https://drive.google.com/open?id=1Jsq49kxQSDwiapBp6op9HENgM6Lhx23i カメラ : https://drive.google.com/open?id=1Pf0DzdilXCnfmzHdY82-IHnhgLfykJzi rosbug: https://drive.google.com/open?id=19ES85EJFZkEjj6u2Ldz6mgTGmsQgVyrK
物品2つでデモが出来てよかったですね。
ちょっと気になったんだけど、rvizの動画とカメラの動画は違う実験のものかな? できれば同じ実験のrviz動画とカメラ動画があるといいですね。
最後に、(もうしてるかもしれないけど)デモをした時のコードをpull request(https://github.com/jsk-ros-pkg/jsk_demos/pull/1252 )に追加しておくと良いと思います。
幕内です。 ゼミに全く参加をしておらず、本当に申し訳ありません。
僕の担当する箇所ですが
となっています。 また、部活動の関係で春休み中での今後の参加もかなり厳しいです。 せっかくゼミに参加させてもらっているのにこのような事になってしまい、申し訳ありません。
河村です。 期末試験も終わり春休みにはいりましたので、ゼミ活動を再開したいと思います。 自分が担当する箇所ですが
rosparam
の荷物の数をインクリメントして宛先ごとに荷物の数を保持しておくです。現状、荷物の認識までできているので、残りの3つを春休み中に行いたいと思います
ストーリー
ストーリ全体の残り