I want to synthesize PCB(Printed Circuit Board) and defections dataset by omniverse replicator,
Is there a way to render the defections on a reasonable and random location in PCB, instead of only random location?
I mean the PCB has some components are: circle light, circuit, board
and let defections put on the circuit line edge, or put a mesh between two circuit line.
for example the following picture,
which simulate PCB defection dataset, but the defections(colored circle) is randomly put. that’s not what I want…
And random uniform or normal distribution can’t achieve the outcome.
Rather I don’t use sequence or choice method to handle the problem, because that represents there are many locations I should precisely pick up on many PCB models.
Is there something rule-based method that makes some constraint between components?
If you can analytically represent the paths on which the defects can be placed on, you could sample from those models multiple possible locations (thousands or tens of thousands if needed, I don’t think there is a numerical limit) and use those arrays of locations as input to the choice randomizer.
I think this would be a more straightforward approach. Otherwise you could implement your own randomizer graph node (a bit more advanced topic), this would be more memory efficient since you do not need to cache all the points. You would still need the model from which to sample the locations though.
If you can analytically represent the paths on which the defects can be placed on, you could sample from those models multiple possible locations (thousands or tens of thousands if needed
how can I get the position of prim object, and I want random put some sphere(like defections) base on added or decreased offset of position.
Is the way can do it by replicator API? I use “omni.replicator.core.get.xform” API but seems have not the position attribute.
Can you give me some example for your suggestion? Thank you so much!
If the PCB_04 prim is not going to move during the randomizations then you can read the transform of the prim: tf_mat = omni.usd.get_world_transform_matrix(pcb_prim)