Description of problem
My 2022.1 code using SyntheticDataHelper was failing, so I updated it to use Replicator instead. I have pasted the relevant code below. Once I start recording, the PC starts taking off like an airplane with loud turbines and the code produces some warnings and errors (also below). The code is ran as an asynchronous function, I also attempted to detach the render product after use but it didn’t really help. The fan chills out when I pause the simulation and continues after, while the print output indicates the program has already left the replicator code and moved on to doing nothing (I only call that “get” function once at the very end of the code).
The problems, it seems, are the following:
- One render product cannot have multiple annotators? Am I supposed to have several instances of the same render product?
- flatcache seems to be running out of space?
- Some warning related to “camera” duplicates that I can’t make sense of.
- The replicator output seems to be topdown rather than from the actual camera path in the render product
... rp = rep.create.render_product("/World/CameraStand_Closup/CameraCloseup", resolution=(120, 160)) ... self.annotators = dict( rgb = rep.AnnotatorRegistry.get_annotator("rgb"), instanceSegmentation = rep.AnnotatorRegistry.get_annotator("instance_segmentation"), pointcloud = rep.AnnotatorRegistry.get_annotator("pointcloud"), ) ... async def get(self, topics): """ Returns a dict with all requested data. """ sdh_topics = [t for t in topics if t in self.sdh_topics] non_sdh_topics = [t for t in topics if t not in self.sdh_topics] await rep.orchestrator.step_async() gt = dict() for t in sdh_topics: gt[t] = self.annotators[t].get_data(device="cuda") for t in non_sdh_topics: #### Other code return copy(gt) ... async def snap_async(self, topics, rp, filename=None, timestamp=None): # rp = render_product for k in self.sdh_topics: self.annotators[k].attach(rp) gt = await self.get(topics) self.save_topics(gt, filenum=filename, topics=topics) for k in self.sdh_topics: rep.AnnotatorRegistry.detach(self.annotators[k], rp) return gt
2023-01-24 09:11:57 [74,993ms] [Warning] [carb.flatcache.plugin] UsdRelationship /Render/RenderProduct_Replicator.orderedVars has multiple targets, which is not supported 2023-01-24 09:11:57 [75,001ms] [Warning] [carb.flatcache.plugin] PathToAttributesMap (0x26eb11c0) contains attributes with duplicate name "camera" with different types but same per-element size. Data may become corrupted during request to move elements between buckets! 2023-01-24 09:12:00 [77,203ms] [Warning] [carb.flatcache.plugin] getTfType called on non-existent path /World/CameraStand_Closup/CameraCloseup 2023-01-24 09:12:00 [77,203ms] [Warning] [omni.syntheticdata.plugin] Trying to access 8 bytes from /World/CameraStand_Closup/CameraCloseup.cameraProjectionType, but flatcache has only 0 bytes 2023-01-24 09:12:00 [77,203ms] [Warning] [omni.syntheticdata.plugin] Trying to access 8 bytes from /World/CameraStand_Closup/CameraCloseup.clippingRange, but flatcache has only 0 bytes 2023-01-24 09:12:00 [77,203ms] [Warning] [omni.syntheticdata.plugin] Trying to access 4 bytes from /World/CameraStand_Closup/CameraCloseup.focalLength, but flatcache has only 0 bytes Module omni.replicator.core.ogn.python._impl.nodes.OgnSemanticSegmentation load on device 'cuda:0' took 2.43 ms 2023-01-24 09:12:00 [77,241ms] [Error] [omni.kit.app._impl] [py stderr]: /home/dennisushi/Documents/Kit/apps/Isaac-Sim/exts/franka_copycat/com/copycat/app/synthetic_data_watch.py:103: UserWarning: topic camera is not handled by SD Get Watch warnings.warn("topic %s is not handled by SD Get Watch"%t)