ros-visualization / rqt_common_plugins

45 stars 132 forks source link

(new plugin idea) GPS plotter #41

Closed 130s closed 8 years ago

130s commented 11 years ago

Plot GPS msgs on real-world map realtime. Message format can be:

(looks like the ones in sensor_msgs are official?)

Opinions (esp. is this going to be useful or not. If useful then what features are needed) are welcomed.

This idea is tech-driven -- I found Qt-Google API client. http://www.ics.com/technologies/qt_google_apis/. I'm asking the company about license, which is missing in their downloadable. But we're open to any possible technology.

Google Earth might be also possible by using its API.

Note that a single rqt plugin should better be minimal -- for example, integrating with other large tool like RViz should be considered as separate plugin (as rqt_pr2_dashboard does)).

raptort3000 commented 11 years ago

Here is the ROS Answers post I made: http://answers.ros.org/question/57313/geo-referenced-mapping-interface-for-rosrviz/

Google Earth/API has a lot of limitations and there licenses strictly forbids its use with autonomous vehicles. See section 10.2.C at https://developers.google.com/maps/terms

We need something in which someone could load in there own geo-referenced map, such as geotiffs, and plot on top of them. Geo-referenced maps are found all over the place and this disconnects us from the licensing issues that associated with using Google's maps. It also provides a way to display the maps without being connected to the internet.

I found this video on Youtube of a QuadCopter mapping a building on a Map: http://www.youtube.com/watch?v=G_vtm46eGtU

Not sure if there are any open source packages that allow manipulation of geo-referenced maps, that we could import into a plugin for the ROS community.

jack-oquin commented 11 years ago

I did some experimental work with an Open Street Map stack a while back. It contains an osm_cartography package that can read OSM data and display interesting features via rviz markers.

The sources are in the utexas-art-ros-pkg SVN repository.

130s commented 11 years ago

@raptort3000 Very good to know about restrictions...

@jack-oquin Is the terms of use issue why you use OSM?

I'll still look for other possible tools. Meanwhile I opened up a question on stackexchange.

130s commented 11 years ago

@raptort3000 after getting a comment and having re-read the terms of use by myself, I think plotting GPS info doesn't violate it (what's not permitted is to use maps as an input to navigation as far as I'm understood).

jack-oquin commented 11 years ago

My OSM work was very experimental, mostly a proof of concept.

We did intend to use the maps for navigation, and OSM is compatible with our own open source preferences, so the terms of use were an advantage to using their maps.

We also liked the extensive world-wide coverage and the fact that we could contribute our own updates and corrections for specific areas of interest, if necessary.

raptort3000 commented 11 years ago

Yes, plotting GPS is fine, but sending GPS points from the map to your vehicle to navigate to is forbidden. I just think we limit ourselves with going to Google Maps/Earth because of that very limitation. Once you are able to plot the robots position, the only logical next step is to pick waypoints on the map and have the robot autonomously drive to them.

Being able to load in your own georeferenced satellite maps has a lot of benefits. Being able to use it without being connected to the internet is a great benefit, as when you are outside, there is not always a internet connection. Also, it disconnects you from any licensing issues, and you are able to get as detailed satellite images as you need.

We could possible leverage the geotiff library: http://trac.osgeo.org/geotiff/ or maybe modify someone elses Geo application, such as this one: http://openev.sourceforge.net/. There are also, I believe, some QT based geo applications that support the loading of georefereced images.

OSM unfortunately does not provide any satellite/aerial imagery for there maps. I believe they just focus on geodata in vector format, which is how your able to get road networks and such.

jack-oquin commented 11 years ago

I don't know of any restriction that forbids combining OSM road maps with Google Earth satellite imagery, as long as the maps and not the images are used for navigation.

In practice, we found that Google Earth lat/long coordinates are only approximate. To line them up with a separately-generated map, we needed to perform some offset corrections.

130s commented 11 years ago

@raptort3000 btw have you looked at QGroundControl? I haven't tried it yet but it seems to be featuring navigation planning using Google Maps & Earth. I don't know if they work around the legal issue or not. Looks like It comes with ROS interface.

raptort3000 commented 11 years ago

I have not looked into QGroundControl. I personally would just stay away from mapping software that has to be connected to the internet in order to stream map image data. This really limits where you can take your robot, especially if you are running your robot outside. It also allows more flexibility in not having to deal with Google's licensing problems.

I would take a look at OSSIM (http://trac.osgeo.org/ossim/wiki) for a QT geo app, that might be worth while to integrate with ROS with a wrapper. Here is an example of there viewer: http://trac.osgeo.org/ossim/wiki/OssimPlanet and could be made into a pluggin to rqt.

raptort3000 commented 11 years ago

Here is also another link: http://www.osgeo.org/

jack-oquin commented 11 years ago

I agree that the robot should not depend on an active Internet connection for using the maps.

It seems OK to use net access for some human visualization tasks.

jralduaveuthey commented 10 years ago

so if anyone would need to send GPS points from the map to your vehicle to navigate, in a small area. which one should use? i am currently using marble_plugin in rqt, but the zoom is not enough. I need to see the area way bigger so i can allocate there a robot. So now i have a few options: -edit my own map -find someone else map of this area but so far i have not found a community that is doing this, at least where i live -use one of the programms that you mentioned, but which one? Any suggestion would be appreciated.

drews256 commented 10 years ago

This seems like it has stopped being updated. But I have been using QGround Control for a few weeks now. And its ROS implementation isn't very amazing. The more important thing is to have the MAVlink integration. While there is some MAVLink integration that they have on the page. I think this package is slightly more robust. https://github.com/epsilonorion/roscopter atleast for using the PX4 or the Pixhawk to get the GPS from the robot to an onboard computer running ROS.

blackistheanswer commented 10 years ago

Hi guys, This is a very simple web-based visualization interface for GPS and magnetometer data that I developed together with some colleagues. https://github.com/fly4smartcity/rendezvous It supports standard navSatFix and magnetometer ROS messages and it's easily customizable (it's written in Javascript). Please feel free to try it or contribute. Feedback on what we should improve are very appreciated. Thank you !

vincentrou commented 8 years ago

There is a package named mapviz which is a GPS plotter : https://github.com/swri-robotics/mapviz This issue should be closed ?

dirk-thomas commented 8 years ago

@vincentrou Good point.

Also if anyone would like to work on a rqt plugin it doesn't have to be added to this repo anyway. I will close this ticket since it is not more then an idea at this point.