forked from Archive/PX4-Autopilot
optical flow: fixed sign in calculation of optical flow sensor velocity
- the velocity of the optical flow sensor relative to the IMU expressed in body frame is the cross product of the angular velocity with the vector from IMU to the sensor. If we use the angular velocity stored in the flow sample struct we need to use a negative sign as that angular velocity follows the opposite sign convention. Signed-off-by: Roman <bapstroman@gmail.com>
This commit is contained in:
parent
c49ab760c7
commit
27f7846495
|
@ -75,7 +75,8 @@ void Ekf::fuseOptFlow()
|
|||
Vector3f pos_offset_body = _params.flow_pos_body - _params.imu_pos_body;
|
||||
|
||||
// calculate the velocity of the sensor reelative to the imu in body frame
|
||||
Vector3f vel_rel_imu_body = cross_product(_flow_sample_delayed.gyroXYZ / _flow_sample_delayed.dt, pos_offset_body);
|
||||
// Note: _flow_sample_delayed.gyroXYZ is the negative of the body angular velocity, thus use minus sign
|
||||
Vector3f vel_rel_imu_body = cross_product(-_flow_sample_delayed.gyroXYZ / _flow_sample_delayed.dt, pos_offset_body);
|
||||
|
||||
// calculate the velocity of the sensor in the earth frame
|
||||
Vector3f vel_rel_earth = _state.vel + _R_to_earth * vel_rel_imu_body;
|
||||
|
|
Loading…
Reference in New Issue