argoverse / argoverse-api

Official GitHub repository for Argoverse dataset
https://www.argoverse.org
Other
844 stars 241 forks source link

How do I get the global coordinates of my car? #339

Open lovelyy666 opened 10 months ago

lovelyy666 commented 10 months ago

Please help, Is the unit of 'translation' in the city_SE3_egovehicle file meters?, whether the global coordinates of the car are the x and y of the 'translation', and if so, why does the vehicle move more along the y axis (left side of the vehicle)?

argoverse-admin commented 10 months ago

Hi @lovelyy666, thanks for your interest in Argoverse. Yes, the translation is given in meters, and x and y of translation (x,y,z) will give you 2d position of the egovehicle (autonomous vehicle) within the city coordinate frame.

Please refer to the repo README "A Note Regarding Coordinate Transforms": Map pose: represents the location and orientation of the ego-vehicle inside the city (i.e. map) reference frame, city_SE3_egovehicle. We provide map pose for each log in poses/city_SE3_egovehicle_{nanosec_timestamp}.json. This transform brings a point in the egovehicle's reference frame into the city's reference frame.

You can find more information in the Argoverse CVPR '19 paper in the Appendix under "A.1. Coordinate System": The model of the world that we subscribe to within our map and dataset is a local tangent plane centered at a central point located within each city. This model has a flat earth assumption which is approximately correct at the scale of a city. Thus, we provide map object pose values in city coordinates. City coordinates can be converted to the UTM (Universal Transverse Mercator) coordinate system by simply adding the city’s origin in UTM coordinates to the object’s city coordinate pose....

Can you provide a specific log_id for the motion you are referring to? Motion in the city coordinate frame along the y-axis would correspond to north-south motion, and has no relation to the left side of the vehicle (ego-vehicle frame).

lovelyy666 commented 10 months ago

Hi,@argoverse-admin,I don't know much about coordinate conversion, thank you for your patience, here's an example. This is a message about the target pedestrian at a certain moment:{"center": {"x": 64.8369790955502, "y": 11.7543873209238, "z": 0.9071669844259134}, This is the corresponding city_SE3_egovehicle file:{"rotation": [-0.7713604627781845, -0.0013828746147928023, -0.002587114583016875, -0.6363917276006651], "translation": [348.2464144270702, 3680.350671884922, -19.76944131891176]}

So the global coordinates of the vehicle are:[348.2464144270702, 3680.350671884922, -19.76944131891176] and the global coordinates of the pedestrian are used to transform x, y, and z with the above rotation translation information?

In addition, I have another question, city_SE3_egovehicle the rotation information in the file indicates that the vehicle coordinate system is rotated 100 degrees around the x-axis, then the x-axis should still point to the direction of the vehicle, and the y-axis and z-axis roughly exchange positions, how can the y-axis point to the direction of the vehicle?

Thank you again for taking the time out of your busy schedule to answer my questions!!!