xml 添加cameral
<mujoco model="your_model">
<worldbody>
<body name="pelvis" pos="0 0 1.05">
<camera name="depth_camera" pos="0.1 0 0.3" euler="1.5708 -1.5708 0" mode="fixed" fovy="110"/>
</body>
</worldbody>
</mujoco>
- euler: x,y,z方向的欧拉角度
- mode: fixed 固定到 body 上
- fovy: 视野范围
获取摄像头图片
import numpy as np
import cv2
m = mujoco.MjModel.from_xml_path(xml_path)
d = mujoco.MjData(m)
renderer = mujoco.Renderer(m, 480, 640)
renderer.update_scene(d, camera=camera_id)
rgb_img = renderer.render()
renderer.enable_depth_rendering()
renderer.update_scene(d, camera=camera_id)
depth = renderer.render()
depth -= depth.min()
valid_depths = depth[depth < float('inf')]
if len(valid_depths) > 0:
depth /= 2 * valid_depths.mean()
pixels = 255 * np.clip(depth, 0, 1)
depth_img = pixels.astype(np.uint8)
renderer.disable_depth_rendering()
cv2.namedWindow("H1 Cameras", cv2.WINDOW_AUTOSIZE | cv2.WINDOW_GUI_NORMAL)
cv2.moveWindow("H1 Cameras", 1100, 0)
cv2.imshow("H1 Cameras", rgb_img)
cv2.waitKey(1)