Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RadarReturn: clarify order of angles #15

Open
wants to merge 1 commit into
base: ros2
Choose a base branch
from

Conversation

tobiasneumann
Copy link

The current description for the azimuth and elevation angles doesn't directly specify the order of these angles.
From the comment for elevation "For 2D radar, this will be 0." the order can be deducted, but it could be clearer.

Proposed change

  • Add the description that the angles are supposed to be used as "elevation-over-azimuth"

@@ -2,6 +2,7 @@
# This message is not meant to be used alone but as part of a stamped or array message.

float32 range # Distance (m) from the sensor to the detected return.
# The angles order of the angles are elevation-over-azimuth
Copy link
Member

@SteveMacenski SteveMacenski Oct 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move next to rest of the comments.

Also, these are single-values (float32), how is there any ordering? What does "elevation over azimuth" mean? This is not immediately clear.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move next to rest of the comments.

done

Also, these are single-values (float32), how is there any ordering? What does "elevation over azimuth" mean? This is not immediately clear.

The comment is regarding how the 2 angles elevation and azimuth are supposed to be used.
Depending on the order of how these values are applied a different point is described.

The comment For 2D radar, this will be 0 already only allows the order "elevation over azimuth", but this is very indirect and I wanted to clarify this.

Copy link
Member

@SteveMacenski SteveMacenski Oct 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the necessity for clarification. Why is this important? And if it is, is there a standard that can be named / linked?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello together,
I was working with @tobiasneumann on the specification of this pull request.

how is there any ordering? […]
I don't understand the necessity for clarification. Why is this important?

When rotating multiple angles in a 3D space, there is always a rotation hierarchy:
You start with the world reference frame and rotate it around one of its axis. After that you obtain another reference frame. In this you rotate the next angle around the next axis.

The difference between the hierarchies can also be seen at the construction of antenna positioners: Azimuth over Elevation and Elevation over Azimuth.

Our proposal defines the position of a return as Rot(azimuth, z) * Rot(-elevation, y) * (range, 0, 0). Flattened version:

x = range * cos(azimuth) * cos(elevation)
y = range * sin(azimuth) * cos(elevation)
z = range * sin(elevation)

And if it is, is there a standard that can be named / linked?

I don't know if this has been formally specified.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we try to root this in some kind of standard / convention? I understand the point this is making and I believe that is how this is already used, but it would be nice if that policy was based on some kind of standard / convention that we can point to from 3D lidar manufacturers, named coordinate system using this convention, etc

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not aware of standard for this.

If you want to break it down maybe the following helps.

  • azimuth-over-elevation: can be seen as a 2D sensor that is scanning the in x/y plane (mirror is rotating around yaw or z-axis).
    And this sensor is mounted on a tilting platform that moves the sensor around the x/z (or y/z, doesn't makes a difference) plane, so whole 2D sensor is rotated around the pitch or y-axis.
  • elevation-over-azimuth: Can be seen as a 2D sensor that is scanning in the x/z plane (like it is lying on its side).
    And then is rotated additionally around the yaw or z-axis.

When a 2D sensor is moved to scan in 3D, azimuth-over-elevation, might be the first intuitive mounting method and the first paper that did that also choose these mountings.
Modern sensors like FARO Focus or RIEGL VZ and also velodyne (the non solit state once) however seem to be build for elevation-over-azimuth .

@tobiasneumann tobiasneumann force-pushed the clarify-order-of-angles branch from 158af25 to d0b3535 Compare October 10, 2023 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants