Hi authors,
First of all, thank you for this excellent work and open-sourcing the code! I've learned a lot from your implementation.
I have a question about the GPS coordinate system used in your code. In the file streamvln_dagger.py, line 217, there is a comment:
# Habitat GPS makes west negative, so flip y
camera_position = np.array([x, -y, self._camera_height + height])
I've traced this GPS definition back to the Habitat source code in habitat-lab/habitat/tasks/nav/nav.py
where the 2D GPS is computed as:
# Habitat source code (nav.py)
agent_position = quaternion_rotate_vector(...) # inverse rotation to agent's frame
if self._dimensionality == 2:
return np.array([-agent_position[2], agent_position[0]], dtype=np.float32)
So the GPS (x, y) I get from observation["gps"] corresponds to:
- x = -agent_position[2] (forward direction, aligned with the local -Z axis of the agent, displacement relative to the agent's starting position)
- y = agent_position[0] (right direction, aligned with the local X axis of the agent, displacement relative to the agent's starting position)
Therefore, I want to ask:Why is the y-coordinate negated (changed to -y) when calculating camera_position?What is the reason for flipping the y-axis here?
Hi authors,
First of all, thank you for this excellent work and open-sourcing the code! I've learned a lot from your implementation.
I have a question about the GPS coordinate system used in your code. In the file
streamvln_dagger.py, line 217, there is a comment: