def create_fisheye_spec(**kw_args): fisheye_sensor_spec = habitat_sim.FisheyeSensorDoubleSphereSpec() fisheye_sensor_spec.uuid = "fisheye_sensor" fisheye_sensor_spec.sensor_type = habitat_sim.SensorType.COLOR fisheye_sensor_spec.sensor_model_type = ( habitat_sim.FisheyeSensorModelType.DOUBLE_SPHERE) # The default value (alpha, xi) is set to match the lens "BF2M2020S23" found in Table 3 of this paper: # Vladyslav Usenko, Nikolaus Demmel and Daniel Cremers: The Double Sphere # Camera Model, The International Conference on 3D Vision (3DV), 2018 # You can find the intrinsic parameters for the other lenses in the same table as well. # fisheye_sensor_spec.alpha = 0.59 # default # fisheye_sensor_spec.xi = -0.18 # default fisheye_sensor_spec.resolution = [ settings["height"], settings["width"] ] fisheye_sensor_spec.focal_length = [ min(settings["height"], settings["width"]) * 0.5 ] * 2 # The default principal_point_offset is the middle of the image fisheye_sensor_spec.principal_point_offset = mn.Vector2( settings["height"] // 2, settings["width"] // 2, ) fisheye_sensor_spec.position = [0, settings["sensor_height"], 0] for k in kw_args: setattr(fisheye_sensor_spec, k, kw_args[k]) return fisheye_sensor_spec
[[255, 255, 255], [128, 128, 128], [0, 0, 0]], dtype=np.uint8 ) top_down_map = recolor_map[top_down_map] grid_dimensions = (top_down_map.shape[0], top_down_map.shape[1]) # convert world trajectory points to maps module grid points trajectory = [ maps.to_grid( path_point[2], path_point[0], grid_dimensions, pathfinder=sim.pathfinder, ) for path_point in path_points ] grid_tangent = mn.Vector2( trajectory[1][1] - trajectory[0][1], trajectory[1][0] - trajectory[0][0] ) path_initial_tangent = grid_tangent / grid_tangent.length() initial_angle = math.atan2(path_initial_tangent[0], path_initial_tangent[1]) # draw the agent and trajectory on the map maps.draw_path(top_down_map, trajectory) maps.draw_agent( top_down_map, trajectory[0], initial_angle, agent_radius_px=8 ) print("\nDisplay the map with agent and path overlay:") display_map(top_down_map) # @markdown 4. (optional) Place agent and render images at trajectory points (if found). display_path_agent_renders = True # @param{type:"boolean"} if display_path_agent_renders: print("Rendering observations at path points:")