Nishida-Lab / rosbook_pkgs

「実用ロボット開発のためのROSプログラミング」サンプルコード
http://amzn.asia/d/ct0zwBh
44 stars 18 forks source link

Mk/fix smach #36

Closed MoriKen254 closed 5 years ago

MoriKen254 commented 5 years ago

https://github.com/Nishida-Lab/rosbook_pkgs/issues/35 の修正。

動作確認お願いします。

ついでに、グリッパの開閉を試すための簡単なサンプル(cpp)を追加。整形等大歓迎です。

P.S. 疑問点があれば、直接GitHubのIssueに上げてもらってOKです。

MoriKen254 commented 5 years ago

ついでに、本文中に記載されたtable等をspawnするlaunchを、少しアレンジして追加しておきました。

なんか、テーブルの高さが変わっている気がする。。。

RyodoTanaka commented 5 years ago

@MoriKen254 smachのデモ,試してみました. 基本的に動いていると思いますが,気になった点があるので,修正を一旦後にして記しておきます. 下記リンク先の動画が実際に試した様子です. https://goodroad.work/owncloud/index.php/s/kgD2tTVqMDFYEzX やったことは

  1. roslaunch pr2_gazebo pr2_empty_world.launch
  2. roslaunch smach_sample spawn_object.launch
  3. rosrun smach_viewer smach_viewer.py
  4. rosrun smach_sample smach_pr2.py

以上です. 気になった点を挙げておきます.

1. 初回スポーンは時間がかかる.

これはGazeboあるあるの問題ではあるのですが,やはり,初回起動時(机などのモデルがまだダウンロードされていない時)は2つめのコマンドをlaunchしても,机,コップ,ビール缶がなかなか出てこないです. 対処法として,パッケージ内に持っておくというのもアリかもしれないです.

2. 机の位置がおかしい

すでに @MoriKen254 さんもおっしゃっていますが,机の高さがおかしいので,デモとして見た場合にはやはり机の高さがあった状態の方が良いと思います.

3. Gripperの開きが足りない気がする

仮に机の高さを合わせたとしても,PR2のGripperをもう少し開かないとコップが持てない気がします.

4. てか,そもそもなんかコップが浮いている

動画でもアップにはしてるのですが,PR2からみて左側の黒いコップが浮かんでるように見えます....

以上,本来なら解決したうえでPRを投げるべきですが,一旦時間が無いので気になった点を挙げておきました. 手が空き次第,実装したいと思います. なお,本PRのマージについては,これらの点を修正してからマージしたほうが良いかと僕は思います. 以上,よろしくお願いします.

MoriKen254 commented 5 years ago

コメントをいただきまして、誠にありがとうございます。

対処法として,パッケージ内に持っておくというのもアリかもしれないです.

https://github.com/Nishida-Lab/rosbook_pkgs/pull/36/commits/d5784d5f921edda0cce223f167cb5d4bd938375e で対応しました。

机の位置がおかしい

https://github.com/Nishida-Lab/rosbook_pkgs/pull/36/commits/d5784d5f921edda0cce223f167cb5d4bd938375e で対応しました。

Gripperの開きが足りない気がする

おっしゃるとおり、足りていません。原因不明です。

とにかく、指令値自体を小さくしないとactionがgoalに達せず、状態遷移が延々と進まず、プログラムがスタックします。

カップが浮いている。

すみません、sdfをリポジトリに突っ込んでからは未確認です。ただ、本サンプルの趣旨に即せば、対応の優先度は下げるべきと判断します。

mergeタイミング

理想論は承知なのですが、すでに本件はマーケットに投入されており、購入くださった方から「プログラムが固まる」という問題の解決に対する要望を受けているという背景があります。 よって、本PRを一旦マージして、残件のPRは別で出すことを希望します。

なぜなら、全ての問題を解決するまでマージをしないという方針になると、解決が長期化し、同様の問題で演習を先に勧められない読者数が増加するリスクがあるためです。(今日明日でできると保証できるのであればいいのですが、なかなかそういうわけにも行かないかと)

問題は小さく切って、優先度を設け、Fixできるところから固め、解決対象のスコープを小さくしながら進行させたいと考えております。

この場合、ハンドが開かないためにプログラムがスタックしてしまうため、smachの状態遷移が進行しないという問題を先に解決しておく必要があると考えています。(smachの章であるにもかかわらず)

なので、こと今回につきましては、本問題を提起してくださった研究室の学生の動作報告を受け次第、マージする方針とさせて頂けましたら幸いです。

すみませんが、ご協力のほどよろしくお願い申し上げます。

RyodoTanaka commented 5 years ago

@MoriKen254 修正いただき,ありがとうございます. Gripperの件,コップが浮いている件,マージのタイミングについて承知しました. 西田研究室の方か私で現状のPRがとりあえず動くか確認次第,マージしたいと思います. 残件については,手が空き次第,別ブランチでやってみたいと思います. 予定としては

  1. Gripperが最後orコップが持てるようになるまで開ける
  2. コップが浮いてるのを何とかする

という順番で取り組みたいと思います. お忙しいところありがとうございました.

AtsukiYokota commented 5 years ago

issueの方しかみておりませんでした.すみません. issueの方にも書きましたがsmach_sample smach_pr2.pyの動作確認はできましたのでspawnの問題は残りますがこちらのPRは一旦mergeさせていただいて,spawnの問題は @MoriKen254 さんが仰るように別のPRにて解決する方針でいこうと思います.

MoriKen254 commented 5 years ago

ご協力ありがとうございました ^^

引き続きよろしくおねがいします m( )m