ApolloAuto / apollo

An open autonomous driving platform
Apache License 2.0
25.14k stars 9.71k forks source link

rtk localization error: IMU message buffer is empty #9445

Open lukasthede opened 5 years ago

lukasthede commented 5 years ago

Hi,

I am having trouble understanding the following error:

After I start apollo (using dev_start, dev_into and bootstrap.sh) I open dreamview and start the modules (localization, routing, guardian, control, prediction and planning). I select a map and a car in dreamview, as well as the standard mode. However the car does not show up on the screen.

The following error occurs in the localization log file:

Log file created at: 2019/08/20 09:42:41
Running on machine: in_dev_docker
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E0820 09:42:41.490025 18088 rtk_localization.cc:91] IMU message buffer is empty.
E0820 09:42:41.490733 18088 rtk_localization.cc:91] IMU message buffer is empty.

I found out, that if I switch to navigation mode the car shows up on the screen and localization works, even after switching back to the standard mode.

This does not seem to be that big of a problem, but I still cant find a solution for it. Can you please help me fix this issue?

If you need any additional info, please let me know.

System information

natashadsouza commented 5 years ago

@udeto thank you for your interest in Apollo. Please confirm if you are building Apollo without a vehicle? If so, try the same launch without selecting localization as the module needs IMU input. Let me know if it works for you.

lukasthede commented 5 years ago

I am building Apollo with a simulated vehicle in carla. The sensor data are transmitted using ros topics.

The localization module receives the following IMU input: imu { position { x: 45.5898666382 y: -89.009979248 z: 0.254972875118 } orientation { qx: 2.6098899431e-05 qy: -3.42131233242e-05 qz: -2.19621452033e-06 qw: 0.999999999072 } linear_velocity { x: 0.0 y: -0.0 z: 0.0 } linear_acceleration { x: 0.0 y: -0.0 z: 0.0 } angular_velocity { x: 0.0 y: -0.0 z: 0.0 } linear_acceleration_vrf { x: 0.0 y: -0.0 z: 0.0 } angular_velocity_vrf { x: 0.0 y: -0.0 z: 0.0 } }

Furthermore the localization module recieves the following odometry input: localization { position { x: 45.5898666382 y: -89.009979248 z: 0.254972875118 } orientation { qx: 2.6098899431e-05 qy: -3.42131233242e-05 qz: -2.19621452033e-06 qw: 0.999999999072 } linear_velocity { x: 0.0 y: -0.0 z: 0.0 } linear_acceleration { x: 0.0 y: -0.0 z: 0.0 } angular_velocity { x: 0.0 y: -0.0 z: 0.0 } linear_acceleration_vrf { x: 0.0 y: -0.0 z: 0.0 } angular_velocity_vrf { x: 0.0 y: -0.0 z: 0.0 } }

The localization module produces the output: header { timestamp_sec: 1566368582.06 module_name: "localization" sequence_num: 52676 } pose { position { x: 45.5898666382 y: -89.009979248 z: 0.254972875118 } orientation { qx: 2.6098899431e-05 qy: -3.42131233242e-05 qz: -2.19621452033e-06 qw: 0.999999999072 } linear_velocity { x: 0.0 y: -0.0 z: 0.0 } linear_acceleration { x: 0.0 y: -0.0 z: 0.0 } angular_velocity { x: 0.0 y: -0.0 z: 0.0 } heading: 1.57079193615 linear_acceleration_vrf { x: 0.0 y: -0.0 z: 0.0 } angular_velocity_vrf { x: 0.0 y: -0.0 z: 0.0 } } measurement_time: 0.0

To me it looks like localizazion is working fine, but still dreamview looks like this: Screenshot from 2019-08-21 08-24-25

If i change the steup mode to "navigation" the car shows up on the screen and stays visible, even after switching back to standard mode.

vlin17 commented 5 years ago

Seems like map data is missing. Can You check if your client side received map data? From Chrome, open "Developer tools" -> select "Network" -> select "WS" -> find "map" from the name column -> select "Messages" tab, then you should see "RetrieveMapData" request and binary responses: image

If client side didn't receive map data, it might be because Dreamview server has issue PopulateMapInfo and/or its map service can't RetrieveMapElements properly.