Closed amarburg closed 2 years ago
OK, we're now at "alpha release" stage. Still work to do, but clean-ish. As far as I know, the ROS interfaces are unchanged. The C++ API for drawSonar is also the same ...
I have changed the virtual requirements for AbstractSonarInterface -- it's internally consistent within this repo but may break some stuff elsewhere.
@amarburg -- this is a rather large PR and I'm having trouble figuring out where to start.
It would be really helpful (and good practice in general) if you could include a narrative description of the changes you made and why as a comment to the PR.
@amarburg -- this is a rather large PR and I'm having trouble figuring out where to start.
It would be really helpful (and good practice in general) if you could include a narrative description of the changes you made and why as a comment to the PR.
Sure, it did get a bit far-ranging.
Major changes as follows:
drawSonarRectImage
applies the color map to render the sonar data as a 2D (numAzimuths x numRanges) RGB image. drawSonar
then uses cv::remap
to warp that image into the "fan" shape. This is the major update to the aesthetics and performance of the code.SonarDrawer
... this allows persisting of maps between drawing operations when the sonar geometry doesn't change. Left the functional API in place, it's now a trivial wrapper which creates an SonarDrawer, calls it, then destroys it.Minor / induced changes:
sonar_draw_nodelet
Based on our discussion this morning, I'm merging this!
Err... I'll be merging it as soon as I sign in to my other github account...
Major rewrite of internals to improve performance and image quality.
I have tried to maintain backwards compatibility both in terms of data output e.g. image size as a function of # of bearings/bins and API, but have not been too precious. Please flag if output is not as expected.
Currently an "early access" draft, still making improvements.