Pouring, SVD Methods
At last we are trying some SVD methods with pouring.
Created on June 2|Last edited on June 5
Comment
OverviewResults (6D Flow)GIFs (with consistency)GIFs (no consistency)Comparisons with Naive Methods3D Flow? With and without consistency.3F Flow GIFs
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:
- That's the SoftGym commit.
- This one has the corrected flow visualizations for all the pouring stuff, so both eval/flow_episode_plot and train/flow_gt_plot should be correct. The flows are visualized with 10X more magnitude than usual.
- The config is exactly what we need, we don't need to adjust from that commit (except for random seeds).
- Recall that scaling of input + flow is applied at 250X. Since the maximum horizontal + vertical movement from the demonstrator here, pw_algo_v02 is 0.003 in x and y, then the max flow vectors will be 0.003 x 250 = 0.750.
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.
5
3D Flow SVD Pointwise Consistency
5
5
3F Flow GIFs
Add a comment