fix(sim): split transfer and air-insert camera sets

This commit is contained in:
Logic
2026-05-03 10:14:04 +08:00
parent b1116e489f
commit bc4caf355b
7 changed files with 26 additions and 36 deletions

View File

@@ -94,10 +94,10 @@ class AirInsertTaskRegistrationTest(unittest.TestCase):
is_render=False,
control_freq=30,
is_interpolate=True,
cam_view="left_side",
cam_view="front",
)
def test_diana_table_scene_uses_left_side_camera_instead_of_angle(self):
def test_diana_table_scene_exposes_only_top_and_front_scene_cameras(self):
xml_path = (
pathlib.Path(__file__).resolve().parents[1]
/ "roboimi/assets/models/manipulators/DianaMed/table_square.xml"
@@ -106,11 +106,11 @@ class AirInsertTaskRegistrationTest(unittest.TestCase):
cameras = {camera.attrib["name"]: camera.attrib for camera in root.findall(".//camera")}
self.assertNotIn("angle", cameras, "DianaMed scene should stop exposing the old angle camera")
self.assertIn("left_side", cameras, "DianaMed scene should expose the left-side task camera")
left_side_pos = np.fromstring(cameras["left_side"]["pos"], sep=" ")
self.assertLess(float(left_side_pos[0]), 0.0)
self.assertEqual(cameras["left_side"].get("mode"), "targetbody")
self.assertEqual(cameras["left_side"].get("target"), "table")
self.assertNotIn("left_side", cameras, "DianaMed scene should no longer expose left_side")
self.assertIn("top", cameras)
self.assertIn("front", cameras)
self.assertEqual(cameras["top"].get("mode"), "targetbody")
self.assertEqual(cameras["top"].get("target"), "table")
class AirInsertResetAndStateHelpersTest(unittest.TestCase):

View File

@@ -74,7 +74,7 @@ class _FakeRenderer:
self._env = env
self._frames = [
np.full((4, 4, 3), fill_value=index, dtype=np.uint8)
for index in range(5)
for index in range(8)
]
self._index = 0
@@ -144,7 +144,7 @@ class EvalVLAHeadlessTest(unittest.TestCase):
is_render=False,
control_freq=30,
is_interpolate=True,
cam_view="left_side",
cam_view="top",
)
def test_headless_sync_camera_capture_populates_images_without_gui_calls(self):
@@ -153,11 +153,10 @@ class EvalVLAHeadlessTest(unittest.TestCase):
env.mj_data = object()
env.exit_flag = False
env.is_render = False
env.cam = 'angle'
env.cam = 'top'
env.r_vis = None
env.l_vis = None
env.top = None
env.angle = None
env.front = None
env._offscreen_renderer = None
@@ -176,7 +175,6 @@ class EvalVLAHeadlessTest(unittest.TestCase):
self.assertIsNotNone(env.r_vis)
self.assertIsNotNone(env.l_vis)
self.assertIsNotNone(env.top)
self.assertIsNotNone(env.angle)
self.assertIsNotNone(env.front)
def test_cam_start_skips_background_thread_when_headless(self):
@@ -196,11 +194,10 @@ class EvalVLAHeadlessTest(unittest.TestCase):
env.mj_data = object()
env.exit_flag = False
env.is_render = False
env.cam = "left_side"
env.cam = "top"
env.r_vis = None
env.l_vis = None
env.top = None
env.left_side = None
env.front = None
with mock.patch(
@@ -217,7 +214,6 @@ class EvalVLAHeadlessTest(unittest.TestCase):
self.assertIsNotNone(env.r_vis)
self.assertIsNotNone(env.l_vis)
self.assertIsNotNone(env.top)
self.assertIsNotNone(env.left_side)
self.assertIsNotNone(env.front)
def test_eval_main_headless_skips_render_and_still_executes_policy(self):