Simulation#
The simulated side of the experiments: the Habitat-sim renderer, the stand-in controllers that execute trajectories
without physics, and the HSSD scenes. Node parameters and topics are in the
open_apero_habitat and
open_apero_controllers
READMEs; Installation sets up Habitat-sim and the dataset.
The Habitat Renderer#
habitat_renderer_node runs in Habitat-sim’s own Python environment. For every camera pose the controller publishes
on /camera_transform it renders, in arrival order, a depth image (32FC1, planar z, in meters), a color image and
the camera info, stamped with the pose’s stamp. Once up, it publishes /open_apero/simulation_ready, which
mission_coordinator_node waits for before it starts the planner.
Depth, in order: NaN and infinite readings become 0, readings above
max_depthbecomefar_depth_sentinel(so voxblox clears free space up to the observation boundary), readings belowmin_depthbecome 0.Intrinsics:
fx = fy = width / (2 tan(hfov / 2)),cx = (width - 1) / 2,cy = (height - 1) / 2.
The Stand-In Controllers#
dummy_controller_node publishes the scene’s initial pose until the first trajectory arrives, then steps through its
waypoints at time_from_start / speedup_factor, publishing each as TF, robot_state and, with
publish_camera_transform: all, /camera_transform, which makes Habitat render a frame. After the last waypoint it
publishes command/result with the trajectory’s command_sequence and final state. keyboard_teleop_node drives
by hand: each key moves, turns, raises or lowers the pose and sends it to dummy_controller_node as a one-waypoint
trajectory.
Scenes and the HSSD Dataset#
The scenes come from the HSSD dataset (HSSD-hab on Hugging Face, CC BY-NC 4.0, non-commercial use only), found
through HSSD_DATA_ROOT (set in datasets.env). open_apero_ros/config/scenes/HSSD/ holds one file per scene, the
paper’s eight and a ninth, 103997562, each setting the stage and the start position; scene_id (default
102816036) selects one. The README’s
scene files section lists
them, and Reproducing the Paper gives the paper’s budgets.