Giter Site home page Giter Site logo

rviz_satellite's Introduction

rviz_satellite

Plugin for rviz for displaying satellite maps loaded from the internet.

Alt text

In the near future this plugin will not add support for ROS 2. For an unofficial ROS 2 fork see blacksoul000/rviz_satellite.

In order to use rviz_satellite, add this package to your catkin workspace.

Demo

The package contains a launch file for demonstration purposes. Use it to verify your installation and to get started:

roslaunch rviz_satellite demo.launch

The launch file will fake a GPS position in Philadelphia, USA and display Wikimedia Maps nearby. You can edit the longitude and latitude values in launch/demo.gps to change the position.

Check the Usage section below to learn how to use the position of your robot and a satellite map.

See demo file launch/demo_utm.launch for an example of using this plugin in the UTM frame mode (see below).

Usage

Add an instance of AerialMapDisplay to your rviz config.

The Topic field must point to a publisher of sensor_msgs/NavSatFix.

Map tiles will be cached to $HOME/.cache/rviz_satellite. At present the cache does not expire automatically - you should delete the files in the folder if you want the images to be reloaded.

Currently, we only support the OpenStreetMap convention for tile URLs. This e.g. implies that only raster tiles (no vector tiles) are supported.

Transformation of tiles to RViz fixed frame can be done in two ways that are configured using Map Transform Type option:

  1. Specify a Map frame, which is an ENU-oriented frame in which your robot localizes. This mode expects that the frame of the subscribed NavSatFix messages is consistent with the measured latitude/longitude in this map frame. In this mode, the tiles go through an intermediate transform to the map frame.
  2. Specify UTM frame (and possibly UTM zone). In this mode, no map frame is required and the tiles are directly placed on their UTM positions. This mode expects UTM frame is represented in your transform tree. The subscribed NavSatFix messages are only used to determine the tiles to download, so small inconsistencies between the NavSatFix frame and the measured latitude/longitude is not a big problem. In this mode, you can also change the XY and Z position references from the NavSatFix message to a TF frame. This means the point around which the tiles are displayed is determined by UTM pose of the specified frame instead of the NavSatFix messages.

Tile servers

You must provide a tile URL (Object URI) from which the satellite images are loaded. The URL should have the form http://server.tld/{z}/{x}/{y}.jpg. Where the tokens {z}, {x}, {y} represent the zoom level, x coordinate, and y coordinate respectively. If your API requires a pair of latitude and longitude values instead of x and y tile coordinates, use an URL of the form http://server.tld/{z}/{lat}/{lon}.jpg, where {lat} and {lon} represent the latitude and longitude values of the requested location. All these will automatically be substituted by rviz_satellite when making HTTP requests.

rviz_satellite doesn't come with any preconfigured tile URL. For example, you could use one of the following tile servers:

For some of these, you have to request an access token first. Please refer to the respective terms of service and copyrights.

Options

  • Topic is the topic of the GPS measurements.
  • Map Transform Type selects between the Map frame mode and UTM frame mode (see section Usage).
  • Alpha is simply the display transparency.
  • Draw Under will cause the map to be displayed below all other geometry.
  • Zoom is the zoom level of the map. Recommended values are 16-19, as anything smaller is very low resolution. 22 is the current max.
  • Blocks number of adjacent blocks to load. rviz_satellite will load the central block, and this many blocks around the center. 8 is the current max.
  • Z Offset specifies offset of the displayed tiles in the Z coordinate from their default pose (in meters).

Options available in Map frame mode

  • Map Frame is the map frame rigidly attached to the world with ENU convention.

Options available in UTM frame mode

  • UTM Frame is the frame that represents UTM coordinate frame.
  • UTM Zone is the zone used by the UTM frame. Value -1 triggers autodetection of zone and this property is then overridden with the autodetected zone.
  • XY Position Reference specifies how to determine the point around which tiles are centered. It can be either <NavSatFix Message>, which uses global coordinates from the received fix messages. Or it can be a TF frame name. In such case, the tiles are centered around the XY position of the specified frame in UTM coordinates.
    • Please note that selecting the UTM frame for this reference is invalid. Position of the UTM frame in UTM is (0, 0), which is an invalid UTM coordinate (supported range is 100 km - 900 km in most zones).
  • Z Position Reference specifies how to determine the Z coordinate of the displayed tiles. The meaning of the values is similar to XY Position Reference. Z Offset is applied after computing the reference height.

Support and Contributions

In case of questions or problems, do not hesitate to open an issue.

Contributions are welcomed. Please add a summary of your changes to the changelog under the section Forthcoming.

rviz_satellite's People

Contributors

accept4nce avatar andreschroeder-tomtom avatar beetleskin avatar chataign avatar daikimaekawa avatar earthwings avatar gareth-cross avatar garimellagowtham avatar jgoppert avatar ndunkelivi avatar peci1 avatar rayman avatar roehling avatar ronaldensing avatar schra avatar stefankaiser-tomtom avatar tdenewiler avatar timple avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rviz_satellite's Issues

demo.launch produces errors

Launching the demo.launch should not produce errors.

It's complaining about missing frames. Generating two frames (e.g. "map" and "gps_sensor") by adding a tf-publisher in the launch-file should fix that.

Compilation fails on ROS Kinetic

This used to work fine in ROS Kinetic, but the introduction of getTF2BufferPtr() in 0e8ff38 doesn't work there:

rviz_satellite/src/aerialmap_display.cpp: In member function 'virtual void rviz::AerialMapDisplay::onEnable()':
/workspace/src/external/rviz_satellite/src/aerialmap_display.cpp:98:45: error: 'class rviz::FrameManager' has no member named 'getTF2BufferPtr'
   tf_buffer_ = context_->getFrameManager()->getTF2BufferPtr();

I think querying it from getTFClient() (see http://docs.ros.org/kinetic/api/rviz/html/c++/classrviz_1_1FrameManager.html#a6eb09c3609b6591faee43483186b8730 ) would already work around it.

Would be cool if Kinetic support could stay for some more months until upstream support for it goes away in April 2021. Thanks!

Bug in the demo ?

Hi,
I try to launch the demo.launch and this is what happen :

SUMMARY

PARAMETERS

  • /rosdistro: melodic
  • /rosversion: 1.14.3
    NODES
    /
    fake_gps_fix (rostopic/rostopic)
    rviz (rviz/rviz)
    static_tf_fake (tf2_ros/static_transform_publisher)

ROS_MASTER_URI=http://localhost:11311

process[fake_gps_fix-1]: started with pid [27967]
process[rviz-2]: started with pid [27968]
process[static_tf_fake-3]: started with pid [27969]
/opt/ros/melodic/lib/python2.7/dist-packages/rostopic/init.py:1826: YAMLLoadWarning: calling > yavml.load_all() without Loader=... is deprecated, as the default Loader is unsafe. Please read > https://msg.pyyaml.org/load for full details.
for d in data:
terminate called after throwing an instance of 'std::invalid_argument'
what(): The number of blocks has to be positive

I'm using only source of ROS because I'm on 19.10 Ubuntu.

How can I fix this ?

ROS build farm integration

I've noticed a lot of refactoring being done. Glad to see this code is maintained!

Would you also be interested in creating a release for melodic so we don't need to build from source?

Thanks for considering!

Render Level for Draw Behind

In rviz when I have the AerialMapDisplay running with Draw Behind set to true and then I add a Map display type with Draw Behind also set to true the two layers swap which is on top. It seems that this is based on the height of the data in the Map topic. I was able to make the AerialMapDisplay always be behind the Map display type by changing obj->setRenderQueueGroup(Ogre::RENDER_QUEUE_4); to obj->setRenderQueueGroup(Ogre::RENDER_QUEUE_3);.

I believe the reason the display types fight each other is that the Map display type also uses the value of 4 (seen here).

ERROR: Not enough arguments

When I run:
[WARN] [1646817382.360607]: Could not process inbound connection: topic types do not match: [nav_msgs/OccupancyGrid] vs. [sensor_msgs/NavSatFix]{'topic': '/gps/fix', 'tcp_nodelay': '0', 'md5sum': '3381f2d731d4076ec5c71b0759edbe4e', 'type': 'nav_msgs/OccupancyGrid', 'callerid': '/rviz'}
How can I solve it?
Thanks!

Only map levels up to 11 are properly retrieved from MapQuest for some locations

When trying out the plugin for a location I'm interested in, I noticed that it only properly downloads map data from level 1 to 11. All others show grey image tiles with a crossed out camera. When viewing the same location on map quest, it is obvious higher resolution data than level 11 is available: http://mapq.st/29F0sQV

It seems that MapQuest did some API changes (the old URL says something that in July 2016 they switch to a new site). So maybe what I observe is related to that. Any hints are appreciated, at map level 11 is basically unusable.

Here's a bagfile with NavSatFix data that can be used to reproduce the issue:
2016-07-11-20-27-13.bag.zip

How to calculate the x,y-tile-coordinates from lat,long if given images in EPSG25832-projection method?

Hello there,

I have a question regarding the creation of the WMTS server requests.

From this german governmental-website I can get the address for their WMTS server: https://www.wmts.nrw.de/geobasis/wmts_nw_dop. I can successfully integrate it into josm as an image layer (wmts:https://www.wmts.nrw.de/geobasis/wmts_nw_dop) and it gets displayed correctly.

I can watch the server request made by josm in the terminal, which is something like:2019-09-26 18:54:31.651 INFO: GET https://www.wmts.nrw.de/geobasis/wmts_nw_dop/tiles/nw_dop/EPSG_25832_16/16/17680/35107 -> HTTP_1 200 (13.3 kB)
You can view this tile image: https://www.wmts.nrw.de/geobasis/wmts_nw_dop/tiles/nw_dop/EPSG_25832_16/16/17680/35107

In the rviz-satellite-plugin I entered the string for the request: https://www.wmts.nrw.de/geobasis/wmts_nw_dop/tiles/nw_dop/EPSG_25832_16/{z}/{y}/{x}
If I let rviz_satellite figure out the y and x, I'm getting trash in rviz:
img

I think this is because the images/tiles are in EPSG25832-projection method, but rviz-satellite thinks in Mercator-projection. And I need the images to be in EPSG25832, because of other data which gets displayed.

If you look at the WMTSCapabilities.xml of the map-server you can see there are images available up to zoom level 16 and other info: https://www.wmts.nrw.de/geobasis/wmts_nw_dop/tiles/nw_dop/EPSG_25832_16/1.0.0/WMTSCapabilities.xml

I had a look at the methods, which rviz-satellite seems to use to calculate the x and y, which is something like this:

// in Coordinates.h:
int const n = 1 << zoom;
double x = n * ((coord.lon + 180) / 360.0);
double y = n * (1 - (std::log(std::tan(lat_rad) + 1 / std::cos(lat_rad)) / M_PI)) / 2;

But I think I need to do something like this, because of the EPSG25832/UTM projection:
https://en.wikipedia.org/wiki/Transverse_Mercator_projection

I already had a look at https://josm.openstreetmap.de/doc/org/openstreetmap/gui/jmapviewer/Tile.htm to see how openstreetmap does it, but I didn't find anything.

So all in all: How to calculate the x,y-tile-coordinates from lat,long if given images in EPSG25832-projection method (which josm/osm does succesfully)?

sample.bag not showing path

No path appears when the rosbag play the sample.bag file
only TF topic can display to rviz,
how to display /gps_fix path to rviz world map ?

image

Unable to select fixed frame

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

Don't show map if transform is missing

If AerialMapDisplay/Status/Transform shows the error Fixed Frame [map] does not exist then the map shouldn't be drawn at all. This leads to confusing results, see #48

Wrong location in demo

I tried to run the demo and was shown the following location:
rviz_screenshot_2020_06_15-15_10_06
If I enter the same coordinates into a different site, I am shown a different location, which appears to be further in the south.

image
https://www.latlong.net/c/?lat=39.951121&long=-75.189930
It looks like, rviz_satellite is misreporting the position. Am I missing something here?

Best regards,
Martin Oehler

Support for Qt 5 [FeatureRequest]

Compiling with catkin build on Kubuntu 18.04+Melodic:
Found unsuitable Qt version "5.9.5" from /usr/bin/qmake, this code requires Qt 4.x

Any plans to adapt to Qt 5?

How to replace openstreetmap with Google Map

Compared with Google,OpenStreetMap and MapBox are updated slowly.So I found the URI of Google tiles Maps on the Internet. Then I directly replaced the object uri with the uri of Google Maps on AerialMapDisplay.
In the end, although Google Maps can be displayed on the rviz, the scale of the map is incorrect, so some people know how to modify the scale?

Thank you.

QImageLoader Throwing Error

I have been trying to get this package to work on my machine but I'm getting an error when the tiles are being downloaded. I have tried poking around to see what's wrong but I'm not familiar with Qt so I've hit a bit of a wall.
I am running Ubuntu 14.04 with a full desktop install of ROS Indigo.

The issue is here: https://github.com/gareth-cross/rviz_satellite/blob/master/src/tileloader.cpp#L139

The QImagereader object throws a Reading ras files from sequential devices not supported error from within the if statement. (btw the if statement was still returning true) This stack overflow topic seems to be the same issue but I wasn't able to emulate the fix. He only needed to install the libjpeg.so.62 library to fix his problem. I checked and only had version 8 installed on my machine so I installed 6.2 on top. I have no idea if it worked however.
http://stackoverflow.com/questions/11926840/qt-jpg-image-display-with-qlabel

I tried this as well which would prevent the error but the program still wouldn't work. It would flip frantically between "tiles fully loaded" and "loading tiles"
https://code.google.com/p/qimagegrabber/issues/detail?id=2

Let me know if you need any more info or if you have any ideas.

Mike Hosmar

confusion between TF

Hello,
I am trying to use this plugin with rviz.

I have GPS coordinates at 100hz from sensor fusion. They are in the ENU frame (true east north and up frame).

In this case, what is the definition of the map frame? Will setting ENU to map frame as Identity suffice?
FYI, in my case I do not use base_link. Is the base_link needed for this plugin?
Any insights please?

Tile Loader not showing the tiles in the proper place

Dear all,

First of all, thank you for the development of this plugin that I've found very handy.

I upgraded to the latest version yesterday to make it work in 18.04. I have found that now the satellite images are no longer in the proper placed. Instead, they appear with a small shift to the South and East.

I attach an example with the representation of coordinates 41.38738993 N 2.183433017 E in google maps and with your plugin in rviz to help to understand the differences.

Has any other noticed it?
issue_rviz_satellite
Screenshot from 2019-03-13 17-44-04

Rotate the map image

Hi @gareth-cross Thanks for sharing this meaningful package.

How can I rotate the map image in the Rviz ? for example rotate 45 degrees with z axis.

Best,
Welson,

Fail to complie on kinetic

I have Ubuntu 16.04 and my ROS is kinetic. I just typed 'catkin_make' to compile rviz_satellite after copying to my workspace. I got follow errors.

[ 9%] Generating src/moc_aerialmap_display.cpp
[ 18%] Generating src/moc_position_reference_property.cpp
[ 27%] Generating src/detail/moc_tile_downloader.cpp
Scanning dependencies of target rviz_satellite
[ 36%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/aerialmap_display.cpp.o
[ 54%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/moc_position_reference_property.cpp.o
[ 54%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/tile_id.cpp.o
[ 63%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/position_reference_property.cpp.o
[ 72%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/detail/moc_tile_downloader.cpp.o
[ 81%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/ogre_tile.cpp.o
[ 90%] Building CXX object rviz_satellite/CMakeFiles/rviz_satellite.dir/src/moc_aerialmap_display.cpp.o
In file included from /home/shengshi/catkin_ws/build/rviz_satellite/src/moc_position_reference_property.cpp:9:0:
/home/shengshi/catkin_ws/build/rviz_satellite/src/../../../src/rviz_satellite/src/position_reference_property.h:27:45: error: expected initializer before ‘:’ token
class RVIZ_EXPORT PositionReferenceProperty : public TfFrameProperty
^
/home/shengshi/catkin_ws/build/rviz_satellite/src/../../../src/rviz_satellite/src/position_reference_property.h:29:20: error: expected ‘}’ before end of line
/home/shengshi/catkin_ws/build/rviz_satellite/src/../../../src/rviz_satellite/src/position_reference_property.h:29:20: error: expected declaration before end of line
In file included from /home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.cpp:15:0:
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:27:45: error: expected initializer before ‘:’ token
class RVIZ_EXPORT PositionReferenceProperty : public TfFrameProperty
^
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:29:20: error: expected ‘}’ before end of line
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:29:20: error: expected declaration before end of line
rviz_satellite/CMakeFiles/rviz_satellite.dir/build.make:155: recipe for target 'rviz_satellite/CMakeFiles/rviz_satellite.dir/src/moc_position_reference_property.cpp.o' failed
make[2]: *** [rviz_satellite/CMakeFiles/rviz_satellite.dir/src/moc_position_reference_property.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
rviz_satellite/CMakeFiles/rviz_satellite.dir/build.make:103: recipe for target 'rviz_satellite/CMakeFiles/rviz_satellite.dir/src/position_reference_property.cpp.o' failed
make[2]: *** [rviz_satellite/CMakeFiles/rviz_satellite.dir/src/position_reference_property.cpp.o] Error 1
In file included from /home/shengshi/catkin_ws/src/rviz_satellite/src/aerialmap_display.cpp:39:0:
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:27:45: error: expected initializer before ‘:’ token
class RVIZ_EXPORT PositionReferenceProperty : public TfFrameProperty
^
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:29:20: error: expected ‘}’ before end of line
/home/shengshi/catkin_ws/src/rviz_satellite/src/position_reference_property.h:29:20: error: expected declaration before end of line
rviz_satellite/CMakeFiles/rviz_satellite.dir/build.make:77: recipe for target 'rviz_satellite/CMakeFiles/rviz_satellite.dir/src/aerialmap_display.cpp.o' failed
make[2]: *** [rviz_satellite/CMakeFiles/rviz_satellite.dir/src/aerialmap_display.cpp.o] Error 1
CMakeFiles/Makefile2:1877: recipe for target 'rviz_satellite/CMakeFiles/rviz_satellite.dir/all' failed
make[1]: *** [rviz_satellite/CMakeFiles/rviz_satellite.dir/all] Error 2
Makefile:143: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

Anyone knows how to solve this problem ?

[BUG] Tiles are shifting when the robot moves from one tile to the next tile

What we did:
We selected a traffic circle as a prominent location and walked along the edge of a patch of grass with an rtk module.
We have recorded the GPS topic and we perform a Navsat to ENU conversion. We broadcast the ENU conversion from "map"->"gps_link" (gps_link is the frame_id we get from our ublox f9p driver)

What we expect:
That the trajectory matches the satellite image.

FireShot Capture 003 - rtk_europaplatz -

What we get

rviz_satellite.mp4

The plugin for class 'rviz_plugins/AerialMapDisplay' failed to load.

Hey guys! So I'm trying to set up rviz_satellite on ubuntu 20.04 on WSL1 with ros noetic... I'm getting this error when launching the demo.launch file:

'[ERROR] [1665163798.105047200]: PluginlibFactory: The plugin for class 'rviz_plugins/AerialMapDisplay' failed to load. Error: Could not find library corresponding to plugin rviz_plugins/AerialMapDisplay. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.'

I've checked the default library path and it's: "lib/librviz_satellite", I've checked the opt/ros/noetic/lib folder and can't find a library associated with librviz_satellite? Does anyone know how to install this?

Rviz opens up when the demo.launch is launched with odom and map frames... the only output not showing is the AerialMapDisplay plugin which does not respond!

Any help is of course much appreciated, Thanks!

Use this plugin with a transform or Odometry

Hi,

We are fusing various sources to obtain our final position estimate in UTM frame. Can we use this plugin without a NavSat message? If not, could you provide me some pointers for implementing this?

Thanks

is it possible to convert 2D nav goal to actual gps?

I have been looking at various drone trajectory planners and they expect either a GPS or xyz coordinates to functions. Since this plugin supports visualizing map on rviz, would it be possible to convert/improve "2D nav goal" functionality on rviz to output GPS coordinates of the selected location? i can assume that the calculation depend on zoom level, (some thing like 2D nav goal -> scaled up distance -> GPS coordinate) but cannot wrap around my head a way to implement it.

Plot markers in map.

Hey there,
I just want to plot gps points with markers on a map. Therefore I want to use your rviz_satellite package.
To do that I launched your demo file and also played the sample.bag file. Next I tried to create a marker that subscribes to topic /gps/fix. This however did not work for me .....

question:
How to use the bagfile correctely and display gps data as markers?

Hope you can help me.

Best
Markus

Failed to load plugin 'AerialMapDisplay'

I'm trying to intergrade satellite images to Linorobot and display them with rviz, but I keeps getting error.
roslaunch rviz_satellite demo.launch shows this error message:

[gps_fix-1] process has died [pid 17298, exit code 64, cmd /opt/ros/melodic/lib/rostopic/rostopic /gps/fix __name:=gps_fix __log:=/home/eilidar/.ros/log/c4f23c6a-00e4-11ed-b27c-60a4b7c94bc5/gps_fix-1.log].
log file: /home/eilidar/.ros/log/c4f23c6a-00e4-11ed-b27c-60a4b7c94bc5/gps_fix-1*.log
[ERROR] [1657525401.857090717]: PluginlibFactory: The plugin for class 'rviz_plugins/AerialMapDisplay' failed to load. Error: According to the loaded plugin descriptions the class rviz_plugins/AerialMapDisplay with base class type rviz::Display does not exist. Declared types are rviz/Axes rviz/Camera rviz/DepthCloud rviz/Effort rviz/FluidPressure rviz/Grid rviz/GridCells rviz/Illuminance rviz/Image rviz/InteractiveMarkers rviz/LaserScan rviz/Map rviz/Marker rviz/MarkerArray rviz/Odometry rviz/Path rviz/PointCloud rviz/PointCloud2 rviz/PointStamped rviz/Polygon rviz/Pose rviz/PoseArray rviz/PoseWithCovariance rviz/Range rviz/RelativeHumidity rviz/RobotModel rviz/TF rviz/Temperature rviz/WrenchStamped rviz_plugin/AerialMapDisplay rviz_plugin_tutorials/Imu

Add selectable default map provider

To make the life of the user easier, we should add default map providers via a select-property, along with the tile-url field.

Non exhaustive list:

  • TomTom (check for free default trial key and license)
  • google
  • bing
  • is there a (truly) free satellite map providers?

Potentially free usage/license (to be checked)

Use frame of NavSatFixMsg

Hello Gareth,

great work, I really like this plugin!

Concerning the robot frame property, I misunderstood the plugin:
I expected the plugin to read the frame that corresponds to the (lat,lon)-coordinates from the NavSatFix message, as the latter contains that information (NavSatFix).
With this, I thought the robot frame was there to load tiles around an area where no GPS-coordinates are explicitely available, such as in simulation, where only Cartesian x and y (using UTM as in ROS geodesy for example) are at hand.

Therefore, I would suggest adding this feature, using the upper ROS library, or set the robot frame property read-only (and read it from the NavSatFix message). I could do either and open a merge request, just let me know what you prefer.

Cheers
Max

Coding-Style is mixed up

We have a wild mixture of camelCase and under_score notation. We should stick to the convention of RViz (under_score).

Extend NavSatFix msg

Hi Gareth,

For my application I need to be able to reconfigure the zoom value by a topic instead of using the field in RViz. The way to solve that could be a modification of the NavSatFix msg for adding this parameter, or create a new one which will have just all the fields needed for your plugin. I want to ask you if there is any reason to not include this feature, or just nobody has need this before.

Great work!

Regards,

Jose

Does not compile in hydro

I have Ubuntu 12.04 - gcc version 4.6.4 - ROS Hydro

I don't know how to solve this error:

cc1plus: error: unrecognized command line option ‘-std=c++11’

ROS2

Hi,
Are there any plans to migrate to ROS2?
Thanks

Force Offline Mode?

I'm trying to add a feature to this plugin that will force it to only utilize cached data, but it appears that the saved images expire extremely quickly. How should this be addressed?

Wrong tile positioning

Tile is always positioning with left bottom corner in (0, 0)

ROS version:
foxy/noetic

Steps to reproduce:
Publish gps position with rqt and open plugin in rviz

RViz result:
Screenshot_20201030_110755

OSM result:
Screenshot_20201030_105251

p.s. got this bug on foxy but reproduced at noetic
p.p.s. if i will increase latitude for example position in rviz not changing. Only loaded tile may be changed

Unable to get real-time map update

Hello! Thanks for this great plugin.

I'm trying to visualize the changing GPS position of a robot in real-time. I added the AerialMap plugin to rviz, and added an "axes" object to mark the base_link frame of the robot.

Unfortunately, I am not able to visualize the position of base_link changing in real-time. When I press the "reset" button at the bottom of rviz, the position is updated; but otherwise it is sort of "stuck" in the same position.

May I know if this behaviour is intentional, or is there a way to get the map updated in real time?

Thank you!

Load images from computer

Hi, is it possible to load geotiffs currently stored on the computer as opposed to getting them from a URI?

Thank you. Regards, Andres

Show error if URI is an invalid URI

From #72:

I found that if you just put something like "sdf" in the object uri input, that there will be no error visible in the GUI. However, this is probably not from this PR and also a minor issue anyway.

and:

There is a specific error in the console.

Not accurate in use with robot_localization transform

Hey,
i am using the transform method in robot_localization to get XY from LL. I take the same origin for the transform of GeoPoints and for rviz_satellite. i set "map" as frame_id for the navsat message.

why do i get this offset? do you use different transform functions? Are the Map-Tiles generated by a different method?

Screenshot from 2020-11-18 15-43-59

CI integration

.. or should we rather stick with the ROS buildfarm hooks?

However, we should incorporate basic CI checks, linting and unit-testing.

Cleanup cmake

The cmake setup has some errors, and flaws:

  • ogre stuff is obsolete
  • ${QT_LIBRARIES} is empty resp. redundant to including the individual libs
  • no target defined and used

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.