Skip to content

[Bug]: debug camera seems to be broken when env_separate_rigid=True #1929

@Kashu7100

Description

@Kashu7100

Bug Description

The debug camera seems to be broken.

import genesis as gs
import torch

gs.init()
scene = gs.Scene(
    vis_options=gs.options.VisOptions(
        env_separate_rigid=True # this one 
    ),
    show_viewer=False
)
cam = scene.add_camera(
    pos=(1.5, 0., 1),
    lookat=(0., 0., 0.5),
    res=(720, 480),
    fov=80,
    GUI=False,
    debug=True, # this one 
)
scene.build(n_envs=1)

Steps to Reproduce

This works fine

import genesis as gs
import torch

gs.init()
scene = gs.Scene(
    show_viewer=False
)
cam = scene.add_camera(
    pos=(1.5, 0., 1),
    lookat=(0., 0., 0.5),
    res=(720, 480),
    fov=80,
    GUI=False,
    debug=True,
)
scene.build(n_envs=1)

This will trigger the issue

import genesis as gs
import torch

gs.init()
scene = gs.Scene(
    vis_options=gs.options.VisOptions(
        env_separate_rigid=True
    ),
    show_viewer=False
)
cam = scene.add_camera(
    pos=(1.5, 0., 1),
    lookat=(0., 0., 0.5),
    res=(720, 480),
    fov=80,
    GUI=False,
    debug=True,
)
scene.build(n_envs=1)

(the camera._pos is torch.Size([3]) but given envs_idx is (0,) and pos is torch.Size([1, 3]) at self._pos[envs_idx] = pos in L674 camera.py)

Expected Behavior

can use the debug camera without error.

Screenshots/Videos

No response

Relevant log output

Traceback (most recent call last):
  File "/home/kashu/research/Eden/tests/test_scene.py", line 40, in <module>
    env.build()
  File "/home/kashu/research/Genesis/genesis/utils/misc.py", line 140, in wrapper
    return method(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kashu/research/Eden/eden/envs/base.py", line 167, in build
    self.scene.build(
  File "/home/kashu/research/Genesis/genesis/utils/misc.py", line 140, in wrapper
    return method(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kashu/research/Genesis/genesis/engine/scene.py", line 819, in build
    self._visualizer.build()
  File "/home/kashu/research/Genesis/genesis/vis/visualizer.py", line 184, in build
    camera.build()
  File "/home/kashu/research/Genesis/genesis/vis/camera.py", line 193, in build
    self.set_pose(
  File "/home/kashu/research/Genesis/genesis/vis/camera.py", line 674, in set_pose
    self._pos[envs_idx] = pos
    ~~~~~~~~~^^^^^^^^^^
  File "/home/kashu/miniconda3/envs/genesis/lib/python3.12/site-packages/torch/utils/_device.py", line 103, in __torch_function__
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
RuntimeError: expand(torch.FloatTensor{[3]}, size=[]): the number of sizes provided (0) must be greater or equal to the number of dimensions in the tensor (1)

Environment

  • OS: [e.g. Ubuntu 24.04, Windows 11 24H2]
  • GPU/CPU [e.g. A100, RTX 4090, M3pr, Intel I9-9900k, Ryzen 5900x] (N/A if no GPU/CPU)
  • GPU-driver version (N/A if no GPU)
  • CUDA / CUDA-toolkit version (N/A if non-Nvidia)

Release version or Commit ID

0.3.6

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions