Creating a scene using multiple threads

2023-11-24 01:28:48 [12,624ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
2023-11-24 01:28:48 [12,625ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
2023-11-24 01:28:48 [12,711ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’

  • Serving Flask app ‘task_requests’
  • Debug mode: off
    2023-11-24 01:28:48 [12,804ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
    2023-11-24 01:28:48 [12,823ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.

Press CTRL+C to quit
2023-11-24 01:28:48 [12,926ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
2023-11-24 01:28:48 [12,937ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’
2023-11-24 01:28:48 [12,948ms] [Fatal] [omni.usd] Failed axiom: ’ !_cache._lifeboat ’

1 Like

@1390644102 i am just another OV user, but is it possible for you to upload the most recent log in its entirety?

Hello, I have a relatively complex scenario where the initialized items are different in each scenario. The specific scenario is called through the API interface, but there is a problem. Even if the same scenario is called for the first time, the speed of the robotic arm grabbing items is still very fast. However, when the API is called for the second time to grab items, the speed slows down. Therefore, I would like to try it out when starting a project, Create all the scenarios using multithreading to see if the speed will increase. The problem now is that creating multiple scenarios with multithreading won’t start. The error message is the first error message sent above

Here is my method of creating multiple threads:

class taskFactory():
def init(self,
dqueueObj:json,
factory_obj:json,
task_type:str):
super().init()
thread = WorkerThread(dqueueObj,factory_obj,task_type)
thread.start()
thread2 = WorkerThread2(dqueueObj,factory_obj)
thread2.start()

class WorkerThread(threading.Thread):
def init(self,
dqueueObj:json,
factory_obj:json,
task_type:str):
super().init()
self.obj = dqueueObj
self.factory_obj = factory_obj
self.task_type = task_type

def run(self):
    robot = self.obj['robot']
    world = self.obj['world']
     
    robot_task = PickPlaceNearTask(
        robot = robot,
        world = world
    )
    self.factory_obj['PickPlaceNearTask_obj'] = robot_task

class WorkerThread2(threading.Thread):
def init(self,
dqueueObj:json,
factory_obj:json):
super().init()
self.obj = dqueueObj
self.factory_obj = factory_obj

def run(self):
    robot = self.obj['robot']
    world = self.obj['world']
    robot_task = PickLowestDownPlaceTask(
        robot = robot,
        world = world
    )
    self.factory_obj['PickLowestDownPlaceTask_obj'] = robot_task

I am having the same issue even in version 2023. I have been getting constant segmentation errors since the very beginning I am using the Isaac. Anytime I want to spawn multiple objects, Isaac crash. In v2022 adding

await omni.kit.app.get_app().next_update_async() wasn’t working at all and we were proceeding with adding sleep manually to wait some frames to add a new object. We are having the same issue in v2023 even though await seems to be working now.