Skip to main content

Pouring, SVD Methods

At last we are trying some SVD methods with pouring.
Created on June 2|Last edited on June 5



Overview

Got this set up as of 06/01/2022.
Default proposed SVD method is:
SVD_POINTWISE_6D_EE2FLOW_SVD = dict(
obs_type='point_cloud',
act_type='ee2flow',
encoder_type='pointnet_svd_pointwise_6d_flow',
method_flow2act='svd',
use_consistency_loss=True,
lambda_consistency=0.1,
scale_pcl_flow=True,
scale_pcl_val=250,
separate_MLPs_R_t=False,
)

  • SVD_POINTWISE_6D_EE2FLOW_SVD
    • Note: this is the current "proposed method" based on scooping experiments.
    • Running 6D flow:
      • (06/01/2022) 2X runs locally on takeshi.
      • (06/01/2022) 3X runs on cluster.
    • Not using separate MLPs for (R,t) as it wasn't useful for scooping that much.
    • Using the consistency loss from Brian and Chuer.
    • 250X scaling of input PCL and flow. Again this is mainly for making the flow values larger so that the MSEs are not so tiny. We need to scale the input PCL as well for the pointwise loss function for it to be accurate (flow and PCL need to be in the same units) but we also do divide the PCL by 250 before passing it as input to avoid NaNs in segmentation PN++.
  • SVD_POINTWISE_6D_EE2FLOW_SVD
    • Now doing the same, except without the consistency loss. Same settings otherwise.
    • (06/02/2022) 5X cluster.
    • Wait, why are these not looking good? Should check.

Notes on code: I ran after these commits:

See below for more comparisons with 'naive' methods, etc. For this env we can also report eval/info_performance/final for a more fine-grained metric.

Results (6D Flow)

Note: we can also use eval/info_performance_final and that should give the fraction of water particles inside at the end. DO NOT GET THESE CONFUSED, right now we are reporting the binary success rate eval/info_done_final.

6D Flow SVD Pointwise Consistency
5
6D Flow SVD Pointwise NO consistency
5


GIFs (with consistency)

The main failure seems to be when the policy doesn't understand that it has to raise the tool. Note that the water is part of the point cloud so if the water positions vary a lot maybe that is causing confusion? Also I really like how it ends up learning to reverse the box, as it does in the demonstration data. :)


(There are 3 more in progress on the cluster, edit, done now:)



Yeah this is really running into a DAgger issue where if the policy gets stuck and doesn't lift, that crushes its hopes of getting any water in the target.

GIFs (no consistency)

(Why are these not looking that good?!? Actually the losses themselves seem OK...)
?????????????????? It seems like this is just stopping in its tracks? Is it predicting to move down or rotate which would cause a collision? Again if you look at the LOSSES it's not too bad, actually. What do the flows look like?






Comparisons with Naive Methods

OK I think I might have empirically figured out how to get grouping to appear by default, maybe we need to have the groups ready, then do "import panel" instead of "add panel"? See https://wandb.ai/mooey5775/mixed_media/reports/Pouring-Naive-Vector-Methods-data-v02--VmlldzoyMTAxOTUw for more of the naive methods.

6D Flow SVD Pointwise Consistency
5
Naive PN++ Vector
5
6D Flow SVD Pointwise No Consistency
5



3D Flow? With and without consistency.

We might consider testing 3D flow as well.

6D Flow SVD Pointwise Consistency
5
3D Flow SVD Pointwise Consistency
5
3D Flow SVD Pointwise, NO Consistency
5



3F Flow GIFs