Skip to content

Commit 54f6b68

Browse files
committed
refactor(env camera): fix linting, remove dict merge, assert available depth
1 parent 44d44ef commit 54f6b68

3 files changed

Lines changed: 19 additions & 17 deletions

File tree

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ dependencies = ["websockets>=11.0",
2121
"pynput~=1.7.7",
2222
"pillow~=10.3",
2323
"python-dotenv==1.0.1",
24-
"mergedeep==1.3.4",
2524
# NOTE: when changing the mujoco version, also change it in requirements_dev.txt
2625
"mujoco==3.1.5"
2726
]

python/rcsss/camera/sim.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def config(self) -> SimCameraSetConfig:
9898
@property
9999
def camera_names(self) -> list[str]:
100100
"""Should return a list of the activated human readable names of the cameras."""
101-
return [camera for camera in self._cfg.cameras.keys()]
101+
return list(self._cfg.cameras.keys())
102102

103103
@property
104104
def name_to_identifier(self) -> dict[str, str]:

python/rcsss/envs/base.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import gymnasium as gym
88
import numpy as np
9-
from mergedeep import merge
109
from rcsss import common, sim
1110
from rcsss.camera.interface import BaseCameraSet
1211
from rcsss.envs.space_utils import (
@@ -402,7 +401,7 @@ def __init__(self, env, camera_set: BaseCameraSet, include_depth: bool = False):
402401

403402
self.observation_space: gym.spaces.Dict
404403
# rgb is always included
405-
params = {
404+
params: dict = {
406405
"frame": {
407406
"height": camera_set.config.resolution_height,
408407
"width": camera_set.config.resolution_width,
@@ -447,22 +446,26 @@ def observation(self, observation: dict, info: dict[str, Any]) -> tuple[dict[str
447446
observation[self.camera_key] = {}
448447
info["camera_available"] = False
449448
return observation, info
449+
450+
def check_depth(depth):
451+
if self.include_depth and depth is None:
452+
msg = "Depth is not available in data but still requested."
453+
raise ValueError(msg)
454+
return self.include_depth
455+
450456
frame_dict: dict[str, dict[str, np.ndarray]] = {
451-
camera_name: {
452-
self.RGB_KEY: frame.camera.color.data,
453-
}
454-
for camera_name, frame in frameset.frames.items()
455-
}
456-
if self.include_depth:
457-
merge(
458-
frame_dict,
457+
camera_name: (
459458
{
460-
camera_name: {
461-
self.DEPTH_KEY: frame.camera.depth.data,
462-
}
463-
for camera_name, frame in frameset.frames.items()
464-
},
459+
self.RGB_KEY: frame.camera.color.data,
460+
}
461+
if check_depth(frame.camera.depth)
462+
else {
463+
self.RGB_KEY: frame.camera.color.data,
464+
self.DEPTH_KEY: frame.camera.depth.data, # type: ignore
465+
}
465466
)
467+
for camera_name, frame in frameset.frames.items()
468+
}
466469
observation[self.camera_key] = frame_dict
467470

468471
info["camera_available"] = True

0 commit comments

Comments
 (0)