class
DebugVisualizerSupport class for simple visual debugging of a Simulator instance. Assumes the default agent (0) is a camera (i.e. there exists an RGB sensor coincident with agent 0 transformation).
Available for visual debugging from PDB!
Example:
>>> from habitat.sims.habitat_simulator.debug_visualizer import DebugVisualizer >>> dbv = DebugVisualizer(sim) >>> dbv.get_observation().show() >>> dbv.translate(mn.Vector3(1,0,0), show=True) >>> dbv.peek(my_object, peek_all_axis=True).show()
Methods
- def _peek_bb(self, bb: _magnum.Range3D, world_transform: typing.Optional[_magnum.Matrix4] = None, cam_local_pos: typing.Optional[_magnum.Vector3] = None, peek_all_axis: bool = False, debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None, debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> DebugObservation
- Internal helper function to generate image(s) of any bb for contextual debugging purposes. Compute a camera placement to view the bb. Show/save an observation. Return the filepath.
- def create_dbv_agent(self, resolution: typing.Tuple[int, int] = (500, 500)) -> None
- Create an initialize a new DebugVisualizer agent with a color sensor.
- def get_observation(self, look_at: typing.Optional[_magnum.Vector3] = None, look_from: typing.Optional[_magnum.Vector3] = None) -> DebugObservation
- Render a debug observation of the current state and return it. Optionally configure the camera transform.
- def look_at(self, look_at: _magnum.Vector3, look_from: typing.Optional[_magnum.Vector3] = None, look_up: typing.Optional[_magnum.Vector3] = None) -> None
- Point the debug camera at a target. Standard look_at function syntax.
- def make_debug_video(self, output_path: typing.Optional[str] = None, prefix: str = '', fps: int = 4, obs_cache: typing.Optional[typing.List[DebugObservation]] = None) -> None
- Produce and save a video from a set of debug observations.
- def peek(self, subject = …, cam_local_pos: typing.Optional[_magnum.Vector3] = None, peek_all_axis: bool = False, debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None, debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> DebugObservation
- Generic “peek” function generating a DebugObservation image or a set of images centered on a subject and taking as input all reasonable ways to define a subject to peek. Use this function to quickly “peek” at an object or the top-down view of the full scene.
- def remove_dbv_agent(self) -> None
- Clean up a previously initialized DBV agent.
- def render_debug_circles(self, debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> None
- Draw a set of debug circles with accompanying colors.
- def render_debug_frame(self, axis_length: float = 1.0, transformation: typing.Optional[_magnum.Matrix4] = None) -> None
- Render a coordinate frame of the configured length given a transformation. XYZ->RGB.
- def render_debug_lines(self, debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None) -> None
- Draw a set of debug lines with accompanying colors.
- def rotate(self, angle: float, axis: typing.Optional[_magnum.Vector3] = None, local: bool = False, show: bool = True) -> typing.Optional[DebugObservation]
- Rotate the debug sensor agent by ‘angle’ radians about ‘axis’.
- def translate(self, vec: _magnum.Vector3, local: bool = False, show: bool = True) -> typing.Optional[DebugObservation]
- Translate the debug sensor agent by a delta vector.
Special methods
- def __del__(self) -> None
- When a DBV is removed, it should clean up its agent/sensor.
- def __init__(self, sim: habitat_sim.simulator.Simulator, output_path: str = 'visual_debug_output/', resolution: typing.Tuple[int, int] = (500, 500), clear_color: typing.Optional[_magnum.Color4] = None, equirect = False) -> None
- Initialize the debugger provided a Simulator and the uuid of the debug sensor. NOTE: Expects the debug sensor attached to and coincident with agent 0’s frame.
Properties
Method documentation
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. _peek_bb(self,
bb: _magnum.Range3D,
world_transform: typing.Optional[_magnum.Matrix4] = None,
cam_local_pos: typing.Optional[_magnum.Vector3] = None,
peek_all_axis: bool = False,
debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None,
debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> DebugObservation
Internal helper function to generate image(s) of any bb for contextual debugging purposes. Compute a camera placement to view the bb. Show/save an observation. Return the filepath.
Parameters | |
---|---|
bb | The entity’s local bounding box (provided by consumer functions.) |
world_transform | The entity’s world transform provided by consumer functions, default identity. |
cam_local_pos | Optionally provide a camera location in location local coordinates. Otherwise offset along local -Z axis from the object. |
peek_all_axis | Optionally create a merged 3x2 matrix of images looking at the object from all angles. |
debug_lines | Optionally provide a list of debug line render tuples, each with a list of points and a color. These will be displayed in all peek images. |
debug_circles | Optionally provide a list of debug line render circle Tuples, each with (center, radius, normal, color). These will be displayed in all peek images. |
Returns | the DebugObservation containing either 1 image or 6 joined images depending on value of peek_all_axis. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. create_dbv_agent(self,
resolution: typing.Tuple[int, int] = (500, 500)) -> None
Create an initialize a new DebugVisualizer agent with a color sensor.
Parameters | |
---|---|
resolution | The desired sensor resolution for the new debug agent. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. get_observation(self,
look_at: typing.Optional[_magnum.Vector3] = None,
look_from: typing.Optional[_magnum.Vector3] = None) -> DebugObservation
Render a debug observation of the current state and return it. Optionally configure the camera transform.
Parameters | |
---|---|
look_at | 3D global position to point the camera towards. |
look_from | 3D global position of the camera. |
Returns | a DebugObservation wrapping the np.ndarray. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. look_at(self,
look_at: _magnum.Vector3,
look_from: typing.Optional[_magnum.Vector3] = None,
look_up: typing.Optional[_magnum.Vector3] = None) -> None
Point the debug camera at a target. Standard look_at function syntax.
Parameters | |
---|---|
look_at | 3D global position to point the camera towards. |
look_from | 3D global position of the camera. |
look_up | 3D global “up” vector for aligning the camera roll. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. make_debug_video(self,
output_path: typing.Optional[str] = None,
prefix: str = '',
fps: int = 4,
obs_cache: typing.Optional[typing.List[DebugObservation]] = None) -> None
Produce and save a video from a set of debug observations.
Parameters | |
---|---|
output_path | Optional directory path for saving the video. Otherwise use self.output_path. |
prefix | Optional prefix for output filename. Filename format: “<output_path><prefix><timestamp>” |
fps | Framerate of the video. Defaults to 4FPS expecting disjoint still frames. |
obs_cache | Optionally provide an external observation cache datastructure in place of self.debug_obs. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. peek(self,
subject = …,
cam_local_pos: typing.Optional[_magnum.Vector3] = None,
peek_all_axis: bool = False,
debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None,
debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> DebugObservation
Generic “peek” function generating a DebugObservation image or a set of images centered on a subject and taking as input all reasonable ways to define a subject to peek. Use this function to quickly “peek” at an object or the top-down view of the full scene.
Parameters | |
---|---|
subject | The subject to visualize. One of: ManagedRigidObject, ManagedArticulatedObject, an object_id integer, a string “stage”, “scene”, or handle of an object instance. |
cam_local_pos | Optionally provide a camera location in location local coordinates. Otherwise offset along local -Z axis from the object. |
peek_all_axis | Optionally create a merged 3x2 matrix of images looking at the object from all angles. |
debug_lines | Optionally provide a list of debug line render tuples, each with a list of points and a color. These will be displayed in all peek images. |
debug_circles | Optionally provide a list of debug line render circle Tuples, each with (center, radius, normal, color). These will be displayed in all peek images. |
Returns | the DebugObservation containing either 1 image or 6 joined images depending on value of peek_all_axis. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. render_debug_circles(self,
debug_circles: typing.Optional[typing.List[typing.Tuple[_magnum.Vector3, float, _magnum.Vector3, _magnum.Color4]]] = None) -> None
Draw a set of debug circles with accompanying colors.
Parameters | |
---|---|
debug_circles | A list of debug line render circle Tuples, each with (center, radius, normal, color). |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. render_debug_frame(self,
axis_length: float = 1.0,
transformation: typing.Optional[_magnum.Matrix4] = None) -> None
Render a coordinate frame of the configured length given a transformation. XYZ->RGB.
Parameters | |
---|---|
axis_length | The length of the axis lines. |
transformation | The optional transform matrix of the axis. Identity if not provided. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. render_debug_lines(self,
debug_lines: typing.Optional[typing.List[typing.Tuple[typing.List[_magnum.Vector3], _magnum.Color4]]] = None) -> None
Draw a set of debug lines with accompanying colors.
Parameters | |
---|---|
debug_lines | A set of debug line strips with accompanying colors. Each list entry contains a list of points and a color. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. rotate(self,
angle: float,
axis: typing.Optional[_magnum.Vector3] = None,
local: bool = False,
show: bool = True) -> typing.Optional[DebugObservation]
Rotate the debug sensor agent by ‘angle’ radians about ‘axis’.
Parameters | |
---|---|
angle | The angle of rotation in radians. |
axis | The rotation axis. Default Y axis. |
local | If True, the delta vector is applied in local space. |
show | If True, show the image from the resulting state. |
Returns | if show is selected, the resulting observation is returned. Otherwise None. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. translate(self,
vec: _magnum.Vector3,
local: bool = False,
show: bool = True) -> typing.Optional[DebugObservation]
Translate the debug sensor agent by a delta vector.
Parameters | |
---|---|
vec | The delta vector to translate by. |
local | If True, the delta vector is applied in local space. |
show | If True, show the image from the resulting state. |
Returns | if show is selected, the resulting observation is returned. Otherwise None. |
def habitat. sims. habitat_simulator. debug_visualizer. DebugVisualizer. __init__(self,
sim: habitat_sim.simulator.Simulator,
output_path: str = 'visual_debug_output/',
resolution: typing.Tuple[int, int] = (500, 500),
clear_color: typing.Optional[_magnum.Color4] = None,
equirect = False) -> None
Initialize the debugger provided a Simulator and the uuid of the debug sensor. NOTE: Expects the debug sensor attached to and coincident with agent 0’s frame.
Parameters | |
---|---|
sim | Simulator instance must be provided for attachment. |
output_path | Directory path for saving debug images and videos. |
resolution | The desired sensor resolution for any new debug agent (height, width). |
clear_color | |
equirect | Optionally use an Equirectangular (360 cube-map) sensor. |