Skip to content

Commit c71f036

Browse files
committed
patch camera to temporarily print debug info and set imageSize for the cv pinhole model correctly
1 parent 533a160 commit c71f036

File tree

1 file changed

+11
-1
lines changed
  • source/extensions/isaacsim.sensors.camera/isaacsim/sensors/camera

1 file changed

+11
-1
lines changed

source/extensions/isaacsim.sensors.camera/isaacsim/sensors/camera/camera.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
)
4343
from isaacsim.core.utils.render_product import get_resolution, set_camera_prim_path, set_resolution
4444
from omni.isaac.IsaacSensorSchema import IsaacRtxLidarSensorAPI
45-
from pxr import Sdf, Usd, UsdGeom, Vt
45+
from pxr import Sdf, Usd, UsdGeom, Vt, Gf
4646

4747
# Attribute maps for lens distortion models
4848
OPENCV_PINHOLE_ATTRIBUTE_MAP = ["k1", "k2", "p1", "p2", "k3", "k4", "k5", "k6", "s1", "s2", "s3", "s4"]
@@ -1884,21 +1884,29 @@ def _set_lens_distortion_properties(
18841884
**kwargs,
18851885
) -> None:
18861886
"""Sets lens distortion model parameters if camera prim is using lens distortion model."""
1887+
#https://docs.omniverse.nvidia.com/materials-and-rendering/latest/cameras.html#lens-calibration
18871888
self.prim.ApplyAPI(f"OmniLensDistortion{distortion_model}API")
1889+
print('Applying lens distortion model:', distortion_model)
18881890
self.prim.GetAttribute("omni:lensdistortion:model").Set(distortion_model_attr)
18891891
for coefficient_name, coefficient_value in zip(coefficient_map or [], coefficients or []):
18901892
if coefficient_value is None:
18911893
continue
1894+
print(f"omni:lensdistortion:{distortion_model_attr}:{coefficient_name}", coefficient_value)
18921895
self.prim.GetAttribute(f"omni:lensdistortion:{distortion_model_attr}:{coefficient_name}").Set(
18931896
coefficient_value
18941897
)
1898+
print('Named coefficient:', {coefficient_name: coefficient_value})
18951899
for attr_name, attr_value in kwargs.items():
18961900
if attr_value is None:
18971901
continue
18981902
tokens = attr_name.split("_")
18991903
updated_attr_name = tokens[0]
19001904
for i in tokens[1:]:
19011905
updated_attr_name += i.capitalize()
1906+
if updated_attr_name == 'imageSize':
1907+
attr_value = Gf.Vec2i(int(attr_value[0]), int(attr_value[1]))
1908+
print('kwarg coefficient: ', {updated_attr_name: attr_value})
1909+
print(f"omni:lensdistortion:{distortion_model_attr}:{updated_attr_name}", attr_value)
19021910
self.prim.GetAttribute(f"omni:lensdistortion:{distortion_model_attr}:{updated_attr_name}").Set(attr_value)
19031911
return
19041912

@@ -2129,6 +2137,7 @@ def set_opencv_pinhole_properties(
21292137
fx: Optional[float] = None,
21302138
fy: Optional[float] = None,
21312139
pinhole: Optional[List[float]] = None,
2140+
imageSize: Optional[List[float]] = None
21322141
) -> None:
21332142
"""
21342143
Applies OpenCV pinhole distortion model to camera prim, then sets distortion parameters.
@@ -2149,6 +2158,7 @@ def set_opencv_pinhole_properties(
21492158
cy=cy,
21502159
fx=fx,
21512160
fy=fy,
2161+
imageSize=imageSize,
21522162
)
21532163

21542164
def get_opencv_pinhole_properties(self) -> Tuple[float, float, float, float, List]:

0 commit comments

Comments
 (0)