yunshengtian / Assemble-Them-All

[SIGGRAPH Asia 2022] Assemble Them All: Physics-Based Planning for Generalizable Assembly by Disassembly

Home Page:http://assembly.csail.mit.edu

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dataset Consulting

CodingNovice7 opened this issue · comments

Your open source dataset is generated based on Fusion 360 Gallery, so is it possible to provide a way to find the file corresponding to this assembly in Fusion 360 Gallery by one of the assemblies in this dataset?

Sorry currently I don't have that correspondence saved. I might be able to generate that but it's not guaranteed - I need to try.

Sorry currently I don't have that correspondence saved. I might be able to generate that but it's not guaranteed - I need to try.

Thanks for your prompt answer!
Then using your method to input data from Fusion 360 Gallery should give you the appropriate assembly motion and sequence, right?

Yes if your assembly meshes are arranged in a particular way - see our dataset for examples. Basically, you need to name the meshes as 0-N.obj, and since their geometry information may be defined in their local coordinate frame so you need to provide a translation.json that specifies the translation to their global assembled position.

This is a good question and I think this specific requirement may cause some headache. Let me see if I can make things easier to work with.

Ok, I would still like to provide the open source dataset corresponding to the Fusion 360 Gallery file index if it is convenient, but if it is difficult, forget it.
Thank you very much, I'll close this issue now.

Thank you for your patience. I finally figured out how I generated that, and here is the index mapping {our_id: Fusion_360_id}. Hope it helps!

Thank you for your patience. I finally figured out how I generated that, and here is the index mapping {our_id: Fusion_360_id}. Hope it helps!

Thanks for the data and the program, I've noticed your work since joinable and am very much looking forward to your next result!

Thank you! Yes please stay tuned - we are indeed working on more exciting things :)

Haha, I'm really looking forward to it!

Yes if your assembly meshes are arranged in a particular way - see our dataset for examples. Basically, you need to name the meshes as 0-N.obj, and since their geometry information may be defined in their local coordinate frame so you need to provide a translation.json that specifies the translation to their global assembled position.

I'm sorry I'm back, as I am having some problems reproducing your dataset using Fusion360 and would like to get your help. Is the N of 0-N here the assembly sequence of the parts in your given dataset? How was this sequence derived? Regarding translations where you give each part a 3D vector, is this vector the initial coordinates of the part in the simulator? Why is it not a pose matrix? And how do you get the coordinates?

Is the N of 0-N here the assembly sequence of the parts in your given dataset?

No 0-N does not mean a sequence, I simply mean you have to name the files as numbers (even don't need to start with 0 and end with N).

Regarding translations where you give each part a 3D vector, is this vector the initial coordinates of the part in the simulator?

Yes.

Why is it not a pose matrix?

Sure pose matrix is more general. But in our dataset, the parts are already in the right orientation so we only used the translation vectors to keep it simple.

And how do you get the coordinates?

From the Fusion 360 dataset.

So the coordinates in the translation.json file are the translation vectors in the pose matrix in Fusion 360 data?

Right if I remember correctly.

Ok, thank you!

commented

Apologies for jumping in your issue but I am trying to understand as well how the whole thing works.... So one naive question, is it possible to extract the R|t transformation matrix that puts the two pieces together?

Apologies for jumping in your issue but I am trying to understand as well how the whole thing works.... So one naive question, is it possible to extract the R|t transformation matrix that puts the two pieces together?

As I understand it you should be entering an assembled assembly, the dataset here is from Fusion 360 and that dataset contains the assembly poses of the part, which I think is what you want.

commented

@lylwy Thanks for your time to respond ;-)

Ok to make things a bit more clear, for example I am trying to figure out if this work could be used for the Breading bad dataset. (I also opened an issue here in case you want to continue there so that we do not hijack this issue).

The breaking bad dataset comes also with multiple objects already fractured from 2-100 pieces, e.g. the following bowl:
Full model:
image
Piece 1:
image
Piece 2:
image
Piece3:
image
Piece 4:
image
Piece 5:
image

So in principle I have already the assembled format, and in principle using this work I should be able to obtain the motion plan for assebly/disassembly. My goal though is to obtain the transformation matrices that given as input the individual pieces they give me back the assembled model. Thus, from the motion plan I should be able to obtain this information, shouldn't I? Or I am missing something?

fractured_2.zip

This should be doable and please see my response in #4