ros-simulation / gazebo_ros_pkgs

Wrappers, tools and additional API's for using ROS with Gazebo
http://wiki.ros.org/gazebo_ros_pkgs
774 stars 772 forks source link

Add GPS Plugin #154

Open pmukherj opened 10 years ago

pmukherj commented 10 years ago

I'd love to see GPS added as a standard plugin. There is already some work done for this by TU-darmstadt on the hector_gazebo_package. It would be great to see this get included in here.

https://github.com/tu-darmstadt-ros-pkg/hector_gazebo/blob/groovy-devel/hector_gazebo_plugins/src/gazebo_ros_gps.cpp

I can get this going on a fork, if people find this version with slight modifications agreeable. The slight modifications will include:

Parameterizing GPS location Parameterizing noise levels (single GPS, DGPS, RTK etc.)

Open to ideas here.

scpeters commented 10 years ago

Have you seen some of the initial work done on the GPS sensor in Gazebo? It is in Gazebo 2.0 and later (gazebo-current package). That may provide a useful starting point. It has some noise parameters, but no specific consideration of single GPS, DGPS, RTK etc.. We'd be interested in merging some of these improvements upstream into gazebo, for what it's worth.

mikepurvis commented 10 years ago

@scpeters, in your estimation, how much work would it be to port the GPS sensor from Gazebo 2.0 back to the 1.x branch vs. just starting from the Hector code?

A halfway point could be starting from the Hector implementation, but agreeing to conform to the parameters set out in the 2.0 sensor, so that at least it'll be a clean upgrade path.

scpeters commented 10 years ago

We haven't been adding new features to 1.9; we're just fixing bugs there. I'm 99% sure that we won't backport the GPS sensor changes to 1.9, but I'll ping @nkoenig just to make sure.

Your halfway point suggestion sounds like a good idea if you're committed to gazebo 1.9. If you're willing to commit to the parameters in gazebo 2.0 that would make upgrading easier, but feel free to give feedback on parameters / API that you think could be added / improved., and keep in mind that we're open to suggestions for useful parameters to add to gazebo. We can add things to gazebo 2.x as long as it doesn't break API, but if there was a worthwhile breaking change, we could do that for 3.0.

mikepurvis commented 10 years ago

We're not committed one way or the other. How much trouble is it to use Gazebo 2.0 with ROS Hydro?

scpeters commented 10 years ago

We host debs for gazebo 2.0 on packages.osrfoundation.org, labeled as gazebo-current

If you add packages.osrfoundation.org to your sources list (see gazebo wiki for instructions), then you will have access to the gazebo-current, ros-hydro-gazebo-ros-pkgs-current, and so on.

http://packages.osrfoundation.org/gazebo/ubuntu/pool/main/r/

mikepurvis commented 10 years ago

Oh, I see. That's a tougher sell, then, as a dependency on Gazebo 2.0 makes a package non-releasable into ros/public. And based on the numbering change, I assume that means other APIs break, probably requiring a bunch of porting work for our other plugins.

What's the roadmap? Is Gazebo 2.0 going to be "gazebo" in ROS Indigo, or J-turtle? REP 3 doesn't specify a Gazebo version. I'm trying to understand what the timelines are for porting our simulators, one way or another.

To clarify, though, you'll consider reviewing and merging a PR for the proposed plugin into the 1.x repo, and create a release to get it out to ros/public? An alternative path, of course, is that we can create a standalone gazebo_gps_plugin package for use in our products—that might be easier overall in the short term than trying to merge something to a dead-end.

scpeters commented 10 years ago

We are planning for gazebo 2.0 to be "gazebo" in Indigo / Ubuntu Saucy (see this gazebo-release issue).

When I spoke about API / ABI limits, I was referring strictly to the upstream gazebo repository. I expect that gazebo_ros_pkgs would be open to a GPS plugin compatible with 1.9; the main question is how much work it will be to port to gazebo 2.x and push some of the changes upstream.

nkoenig commented 10 years ago

We don't have any plans to backport the GPS sensor in gazebo 2.0 to 1.9. Your halfway measure sounds like a good approach. Take a look at the GPS sensor in Gazebo 2.0. You should be able to match the API fairly easily.