17.4.0
Abstract
Replace the previous “front entity” judgment that relied on the relative quaternion between self and target with a yaw-difference–based check computed from the bearing vector to the target. This makes the front detection independent of the target’s own orientation and selects the nearest entity within ±90° of the ego’s yaw.
Background
The former implementation determined whether another entity was “in front” by computing the relative rotation (quaternion) between the ego orientation and the target orientation, then checking if the resulting yaw was within ±π/2.
Details
Front determination logic
-
Compute ego pose once:
self_posandself_yaw. -
For each candidate entity:
- Compute the vector from ego to the entity:
(dx, dy). - Compute the vector’s yaw (bearing):
vec_yaw = atan2(dy, dx). - Normalize the yaw difference:
yaw_diff = atan2(sin(vec_yaw - self_yaw), cos(vec_yaw - self_yaw)). - Consider the entity “in front” if
|yaw_diff| ≤ π/2.
- Compute the vector from ego to the entity:
References
N/A
Destructive Changes
N/A
Known Limitations
N/A