nobleo / rviz_satellite

Display internet satellite imagery in RViz
Apache License 2.0
530 stars 226 forks source link

Unable to select fixed frame #54

Closed RonaldEnsing closed 4 years ago

RonaldEnsing commented 5 years ago

The AerialMapDisplay plugin sets the fixed frame in rviz to map [1]. As a user I would expect that I can select the fixed frame in rviz. The fact that this plugin resets the fixed frame back to map every time I try to change the fixed frame is confusing.

The AerialMapDisplay ensures that the visualization will be drawn with the right position and orientation after changing the fixed frame to map. However, I think it would be really useful to be able to visualize the AerialMapDisplay with the right position and orientation, for any other fixed frame as well. This would mean that the additional transformations have to be applied between map and fixed_frame_ to get the AerialMapDisplay on the right place.

[1] https://github.com/gareth-cross/rviz_satellite/blob/master/src/aerialmap_display.cpp#L515

RonaldEnsing commented 5 years ago

See this commit [2] to allow any selectable fixed frame in rviz. This does require your tf tree to have a utm frame, also to get the orientation of the tile with respect to your robot.

In this commit, I've added a dependency on the robot_localization package for the conversions between utm and altitude/latitude. However, these conversion functions may as well be implemented in rviz_satellite as well, to avoid the dependency on the robot_localization package. In addition, I have only tested this with an ENU conforming frame (according to REP-105) [3]. For now, since I haven't tested this with e.g. NED/NWU, I removed the option to avoid confusion. The received NavSatFix message determines which tile to download, tf is used to place it in the right position and orientation in any selectable fixed frame.

[2] https://github.com/tud-cor/rviz_satellite/commit/a8d2e207a53a13e46424c5c7c36a8c41e23df6a1 [3] https://www.ros.org/reps/rep-0105.html

beetleskin commented 5 years ago

The fact that this plugin resets the fixed frame back to map every time I try to change the fixed frame is confusing.

Could you elaborate this a bit? How is the plugin resetting the fixed frame?

The AerialMapDisplay ensures that the visualization will be drawn with the right position and orientation after changing the fixed frame to map. However, I think it would be really useful to be able to visualize the AerialMapDisplay with the right position and orientation, for any other fixed frame as well. This would mean that the additional transformations have to be applied between map and fixed_frame_ to get the AerialMapDisplay on the right place.

You can already select any frame in RViz, the map will transform accordingly assumed that map is your UTM frame, i.e. is aligned as you define your global coordinate system (e.g. ENU).

RonaldEnsing commented 5 years ago

Could you elaborate this a bit? How is the plugin resetting the fixed frame?

The fixed frame is set to map here https://github.com/gareth-cross/rviz_satellite/blob/master/src/aerialmap_display.cpp#L515

You can already select any frame in RViz, the map will transform accordingly assumed that map is your UTM frame, i.e. is aligned as you define your global coordinate system (e.g. ENU).

Removing that line would not be enough.

schra commented 5 years ago

I can confirm this bug and will fix it as soon as possible.