bluerobotics / ping-viewer

Ping Viewer is an open-source application to view and record data from the Blue Robotics Ping Echosounder and Ping360 Scanning Sonar.
https://docs.bluerobotics.com/ping-viewer/
GNU General Public License v3.0
42 stars 39 forks source link

Ping360 head orientation display option #999

Open ES-Alexander opened 3 years ago

ES-Alexander commented 3 years ago

Summary

Would be good to have a 'Perspective View' option to set the roll and pitch angle of a Ping360, and warp the plot display accordingly.

Additional information

Perspective View

Pitch + Roll

@patrickelectric I'm not sure how difficult it would be to develop a feature like this. Presumably the black/white background to indicate down/up would be relatively easy, but not sure about the projective transform/directional shrinking of the polar plot (may not be too bad, depending on how the polar plot is implemented at the moment).

patrickelectric commented 3 years ago

This can be easily done using the transformation field and adding a new rotation: https://github.com/bluerobotics/ping-viewer/blob/master/qml/Ping360Visualizer.qml#L115

And adding roll and pitch integration here: https://github.com/bluerobotics/ping-viewer/blob/master/src/sensor/ping360.cpp#L661