InterFuser
InterFuser copied to clipboard
Ego vehicle’s (goal) location
How is the ego vehicle’s goal location stored in the data? And do I understand correctly that the vehicle obtains ground truth coordinate information initially?
From the paper, I got the following information:
Note that we first predict each step’s differential displacement and then recover the exact position by accumulation. To inform the waypoints predictor of the ego vehicle’s goal location, we initialize the initial hidden state of GRU with a 64-dimensional vector embedded by the GPS coordinates of the goal location with a linear projection layer.
and
At each run, the benchmark randomly spawns start/destination points, and generates a sequence of sparse goal locations in GPS coordinates. Our method uses these sparse goal locations to guide the driving without manually setting discrete navigational commands (go straight, lane changing, turning).
And I found the following values for the vehicle position:
"gps_x": -330.58303211256947, "gps_y": 62.00891884672404, "x": 62.00891876220703, "y": 330.5678405761719
stored in the weather-X/data/routestown01../measurements/0000.json
file.
Hi! Your understanding is correct. The "gps_x" and "gps_y" here represent the location given by CARLA Leaderboard. The "x" and "y" here denote the location provided from CARLA simulator.
Thank you for the quick response. So, to be clear "gps_x" and "gps_y" are the goal locations, and "x" and "y" define the current ground truth position of the vehicle? And during one sequence the ground truth position is only provided once (at the beginning of the sequence) and then internally updated using the model's actions?
Thank you for the quick response. So, to be clear "gps_x" and "gps_y" are the goal locations, and "x" and "y" define the current ground truth position of the vehicle?
No, they are all the current ground truth position of the vehicle, but in different coordinates. They can be converted to each other. "x" = "gps_y", "y" = -"gps_x"
And during one sequence the ground truth position is only provided once (at the beginning of the sequence) and then internally updated using the model's actions?
No, these measurements are provided in the whole period. You can check the 0001.json, 0002.json ...
Thanks a lot, I understand now!
One final question: I dont see speed or commands as model outputs. Where / How are the resulting output waypoints translated back into actions for the CARLA environment? Or is the model only evaluated in an offline fashion?
Hi! About this question. i recommend you to refer this page: https://github.com/opendilab/InterFuser/blob/main/leaderboard/team_code/interfuser_agent.py
In a word, the agent controller receives the path and traffic prediction of the model. And then compute the safe route that the ego-car can drive. Finally, the code will convert the driving route into the actual actions.
Very helpful! I try to run the model on offline data, and I instantiate the model as done in this line: https://github.com/opendilab/InterFuser/blob/e4f0314482124bb06a475c3f6fb4bfe3a2701c4d/leaderboard/leaderboard/leaderboard_evaluator.py#L95 This also works fine, but I need help finding how to input the environment variables into this model (with the pure InterFuser this was no problem). Can you point me to the relevant file or line?