This version brings with it a major overhaul of how tensors/arrays with state information are treated, a few extra functionalities related to lane querying, improvements to visualization (stay tuned for more improvements along this direction in the future), and bugfixes. See the notes below for more details.
* The agent state information returned in the Agent/SceneBatch or Agent/SceneBatchElement objects now includes z information for all datasets. This is required for association with VectorMap elements which include z information.
* Instead of state information being stored as simple torch.Tensor or np.ndarray objects in Agent/SceneBatch or Agent/SceneBatchElement objects, they are stored as a new StateTensor or StateArray objects. These types subclass Tensor or ndarray, so downstream pytorch model should work as expected. However, these subclasses allow writing code to access state-elements semantically, rather than relying on say, the x velocity appearing at index 3. This allows downstream code to be written in a more readable manner, and in a way that is robust to future changes in state order, e.g. if we need to add more 3d information, or add properties like heading rate, etc. Furthermore, moving forward, we can write general purpose state transformation utilities that operate on these State objects. See examples/state_example.py for an example.
* Added a get_current_lane function to VectorMap which takes in xyzh of an agent, and returns a set of lanes that the agent is likely to be on. (Unlike get_closest_lane, this factors in the heading of the agent as well. Updated the examples/lane_query_example.py to use this function. The results are much better in intersections, where there are many overlapping lanes.
* Added arguments to UnifiedDataset that allow the user to specify the desired state elements upon its construction (e.g., which derivatives do they want? do they want heading in sin/cos format or not?)
* Improvements to visualization.
* Bugfixes and additional tests for StateTensor propagation across a few different computations.