YOODS / rovi_visual_teach

0 stars 7 forks source link

不具合・要望 #8

Closed KazukiHiraizumi closed 3 years ago

KazukiHiraizumi commented 5 years ago
  1. param.yaml/単位系(mとmm)が混乱している
  2. request/captureのあと即request/solveを発行するとエラーになる
    • rovi/Y1でresponse/captureを発行→crop後にresponse/captureを発行[済]
  3. cropperの機能増で重くなった
    • 変更されたパラメータだけ反映させる
KazukiHiraizumi commented 5 years ago
  1. モニターから離れると2D画像がほとんど真っ黒
    • 撮影位置を決めるときは、少し遠くからモニターを見ながらロボットを操作する。このときストロボオンにしないと何も見えない。でも3D撮像時はストロボオフにしないといけない。TBからオンオフできると助かる。
KazukiHiraizumi commented 5 years ago
  1. 認識失敗の理由がわからない
    • MessageBoxには出ているが見にくい。Scoreのテーブル表示ユーティティがほしい。
KazukiHiraizumi commented 5 years ago
  1. ロボットキャリブのボードTF表示が表示幅に入らず、改行してしまう。
  2. ロボットキャリブ13番目の姿勢でボードの●認識が少ない
  3. ロボットキャリブ解析ボタンのマニュアル記述忘れ
Kan-Harada commented 5 years ago
  1. レシピ機能の充実
    • 新規レシピ作成
    • レシピ削除
    • レシピコピーSave as(名前を変えて保存)でいいことにしましょう
Kan-Harada commented 5 years ago
  1. ダッシュボードの[×]をクリックして閉じた場合に、メインダッシュボードに反映する
Kan-Harada commented 5 years ago
  1. 点群の色分け再検討(以下は案)
    • マスター 白
    • シーン 黒
    • OK 青
    • NG 赤
Kan-Harada commented 5 years ago
  1. 単位系変換機能
    • 環境変数(i.e. ROVI_UNIT=mm/m)による
Kan-Harada commented 5 years ago

13.Solverの改善(急ぎ!!)  法線ベクトルを揃える[済]

Kan-Harada commented 5 years ago
  1. ロボットキャリブの改善
    • 起動をVTとの間でトグルにする、又は相手が起動中は起動できないようにする。
    • 起動時にカウント値が出ない
Kan-Harada commented 5 years ago
  1. 2カメラのライブだけを大きく表示する機能が欲しい。
KazukiHiraizumi commented 5 years ago
  1. 起動時にレシピのパラメータが反映されていない
    • YCAMが起動する前にVTが起動しているため(ycamのlaunchで上書きされる)
KazukiHiraizumi commented 5 years ago
  1. カメラドライバー再起動後にストロボモードがおかしい
    • /rovi/live/camera/SoftwareTriggerRateがyamlの初期値10に変わってしまうため(メカニズムは15に同じ)
KazukiHiraizumi commented 5 years ago

17. CADデータでのVT
以下のような手順ならできそう(教示修正手順と実は同じ)

KazukiHiraizumi commented 5 years ago
  1. モニター機能
    • 異常履歴、解析結果履歴...などデータ履歴を総合的に見れたい=まさにダッシュボード機能
KazukiHiraizumi commented 5 years ago
  1. キーボードがじゃまくさい Ubuntu標準のOnBoardというスクリーンキーボード使えば、TBを持ったままマウスだけで操作できる。 取説に書こう ⇒操作感はイマイチ
KazukiHiraizumi commented 5 years ago
  1. ロボットキャリブ解析エラー
    Numpy 1.11.0でndarray.astype(float)がエラーになるバグが原因。1.15.0以上でOK。
KazukiHiraizumi commented 5 years ago
  1. ロボットキャリブマニュアルにスクリーンショットがほしい
    READMEの内容も古い。HowToとマージすること。
KazukiHiraizumi commented 5 years ago
  1. recipe(シンボリックリンク)がないときに、VTが起動しない
    recipeがないとmain.launchが落ちる。起動後レシピを開いてから、VTを再起動すれば一応復旧するが・・・
Kan-Harada commented 5 years ago
  1. すくい機能をマスターとシーンで分けたい。極端に言うと、マスターには有効でもシーンには無効でも良い。シーンを制限するのは時間短縮が必要な場合のみで、認識結果/精度にはそれほど影響しない。
KazukiHiraizumi commented 5 years ago
  1. 再起動コマンドの復旧時間が長い(10秒以上)
    ストリーミング異常検出で再起動コマンドを送るが、一旦GigE切断しないといけないので、復旧に時間がかかる。
KazukiHiraizumi commented 5 years ago
  1. クロップのとこで躓きがち
    「点群が出ない」苦情のチェックポイントのひとつ。単位系の間違いもあり、混乱しやすい。マニュアル で対応。
KazukiHiraizumi commented 5 years ago
  1. パラメータ変更キャンセルがほしい
    元の値(ファイル)に即戻せる操作がほしい→右クリックのポップアップにて操作
  2. J5カメラのフランジ回転キャンセル方向が異なる
    柏の葉と山口で。よく見るとtool0が異なっている。 柏の葉のur_descriptionが古かった。最近はaptよりGitが最新っぽい
  3. config_tf(Static-TFドライバ)の起動グループ
    「キャリブレーション」や「VT」で起動しているが「ロボットドライバ」にすべきでは
KazukiHiraizumi commented 4 years ago
  1. Reposが肥大化する .soや画像などバイナリファイルは差分が取れないので、Reposのサイズが大きくなる。 バイナリファイルは別のサーバ(履歴管理のないやつNextcloudでもいいのかも)から参照にしようか?
KazukiHiraizumi commented 4 years ago
  1. 回転対称物体で無用に回転する[済] searcherに以下を追加
    • 後処理で同相の最小回転に変換する。 https://github.com/KazukiHiraizumi/RotSym
    • 不変座標系はモデルのlearnと同様に予め求めておく
    • sTwはTFに出し(camera/master0の子フレーム)、Rvizで見れること
KazukiHiraizumi commented 4 years ago
  1. Global mtching視点設定がないけど・・・ ~~viewpoint=np.array([0.0,0.0,0.0],dtype=float) open3D.orient_normals_towards_camera_location(cloud, camera_location = viewpoint) をいれるみたいだが、元々カメラ座標なのでいっしょかも~~ [済]視点をカメラ(0,0,0)とすることで法線が揃う
KazukiHiraizumi commented 4 years ago
  1. ここが真ん中(カメラ座標系のZ軸)いうとこに、プロジェクタが照準を当ててくれるといいな
KazukiHiraizumi commented 4 years ago
  1. Open3D 新API適合 0.8.0になりインタフェースが大幅に更新されたので、その対応。
Kan-Harada commented 4 years ago
  1. dashboardを下に配置したところ、セットアップやロボットキャリブのダイアログの下部が全部表示されなくなった。
Kan-Harada commented 4 years ago

Fitnessが十分なのにfalseが返ってくる。以前はなかった現象で、マスター登録してそのままVTを走らせてもエラーが返る。fitness=1.0や0.998なのにfalseなので、バグではないか。feature matching [[ 9.81349214e-01 -1.92011949e-01 -9.22667522e-03 -2.79074996e+01] [ 1.90229560e-01 9.76912197e-01 -9.72382326e-02 1.25283665e+01] [ 2.76845541e-02 9.36694768e-02 9.95218365e-01 1.84410531e+01] [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]] 0.8825 ICP fitness= 0.862 publish master 4000 [INFO] [1576069888.415] (ros): rsocket::solve done false


rmseで引っかかっていた

KazukiHiraizumi commented 4 years ago
  1. マスターはダウンサンプリング前の点群を保存しないといけないかな?
KazukiHiraizumi commented 4 years ago
  1. ソルバー高速化
    特徴点ダウンサンプル、よくない? ransacに組込済
KazukiHiraizumi commented 4 years ago
  1. セットアップパネルを開いている時にロボットからレシピが変更された場合、パラメータ保存出来るとまずい
KazukiHiraizumi commented 4 years ago
  1. IREX会場でのロボットキャリブがうまくいかなかった(とんでもないところにカメラがある) 添付データの10行目を除けばOKなので、この位置を再教示。 rcalib_input.txt キャリブ板撮影状態の○×がリアルタイムに判別できたい。
KazukiHiraizumi commented 4 years ago
  1. フラットな形状のとき、解析結果が裏表ひっくり返ることがある
    法線の向きは逆の筈だが・・・
KazukiHiraizumi commented 4 years ago
  1. ransac solverを並列で何個か走らせれば、そのうちいくつかは正解が出そう[済] feature_matchingを指定回数繰り返すように改変。 結果(score)から良さ気なものを選ぶ機能は、pickerに移行
KazukiHiraizumi commented 4 years ago
  1. ソルバー成功率アップ[済]
    ransacをmultiprocessで並列実行する。当たりが出る確率があがる。 法線、特徴点算出までは同じ処理なので共用化しよう。 Open3Dの並列処理は既に一杯一杯なので、41の処理にて完了
Kan-Harada commented 4 years ago
  1. クロップ機能を充実して欲しい  マスターだけではなく、シーンでも周囲のパーツ誤検知を防ぐために使いたい。(イマイチ具体的なニーズは不明)
KazukiHiraizumi commented 4 years ago
  1. 【重要】HC10のベアリングピッキングで稀にXYがズレた座標へ行く。Z回転が違うのか?
KazukiHiraizumi commented 4 years ago
  1. 【重要】tf_euler.pyが3000サイクル弱で落ちる サービスコールに変更[済]
Kan-Harada commented 4 years ago
  1. MELFAでX3がエラーになるケースが多発する。
Kan-Harada commented 4 years ago
  1. URで半日くらいデモ動作するとかならず一度止まる。ROSロボットドライバ再起動で復活する。 ⇒#45が原因と推定しています(平泉)
HirokoImamiya commented 4 years ago
  1. サンプル評価にて、3Dスキャン後に、10回連続で解析を実施していたところ コンソール上にERRORが表示された。(1回のみ発生) エラー発生後、内部で再解析しており、認識結果は取得できた。

【コンソールログ】 time for calc feature 0.053188085556 time for feature matching 5.98829197884 [INFO] [1580279398.187716]: picker::fitness [] distance [] [ERROR] [1580279398.188112]: bad callback: <function cb_score at 0x7f68eae0d578> Traceback (most recent call last): File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback cb(msg) File "/home/ros/catkin_ws/src/rovi_utils/script/picker.py", line 85, in cb_score if len(set(Stats["proc"]))>=Config["multiplex"]: cb_stats() File "/home/ros/catkin_ws/src/rovi_utils/script/picker.py", line 45, in cb_stats pick=np.argmin(Stats["Tz"]) File "/home/ros/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py", line 1172, in argmin return _wrapfunc(a, 'argmin', axis=axis, out=out) File "/home/ros/.local/lib/python2.7/site-packages/numpy/core/fromnumeric.py", line 56, in _wrapfunc return getattr(obj, method)(*args, **kwds) ValueError: attempt to get argmin of an empty sequence

time for calc feature 0.0552539825439 time for feature matching 5.97817802429 [INFO] [1580279404.359315]: picker::fitness [0.705782 0.7012648 0.70297128 0.70327246 0.51154387 0.70548081 0.7008633 ] distance [-0.00445045 -0.00442687 -0.00444245 -0.00444847 -0.00365876 -0.00443699 -0.00445334] publish master 9982

KazukiHiraizumi commented 4 years ago
  1. ransac繰り返し数はパラメータに configで7回固定にしているが、パラメータ化する。認識しやすいものでは回数を少なく、間違いが起きやすいものでは多くする
KazukiHiraizumi commented 4 years ago
  1. マスターと逆さ向きは認識しにくい[済] 理論的にそうなの?という気はするが・・・ 応急処置としては、回転させたマスターを内部的に保持すればいいか ⇒、registration_ransac_based_on_feature_matchingの estimation_methodを o3.TransformationEstimationPointToPlane()⇒o3.TransformationEstimationPointToPoint(with_scaling=False) してみる ⇒上記変更にて回転対応OK
KazukiHiraizumi commented 4 years ago
  1. (HC10で)ロボットのツールを変えると、フランジではなく選択されているツール座標が送られてくる。