I’d like to build an indoor drone using UWB. At the moment I have a Pozyx but might be later I’ll build an own implementation. However, this system delivers just the position. Speed is not available and attitudes are probably estimated by the gravity vector or an EKF but I think the Pixhawk can do this equally well.
What are the options using Pixhawk?
I’ve found so far:
VISION_POSITION_ESTIMATE -> ORB vehicle_vision_position / vehicle_vision_attitude
vehicle_vision_position is used in EKF2 / LPE / INAV
vehicle_vision_attitude is used in EKF2
ATT_POS_MOCAP -> ORB att_pos_mocap
att_pos_mocap is used in LPE / INAV
VICON_POSITION_ESTIMATE -> Not used in PX4
ATT_EXT_HDG_M -> INAV
LPE_VIS_XY -> LPE
LPE_VIS_Z -> LPE
LPE_FUSION -> LPE
EKF2_AID_MASK -> EKF2
SYS_MC_EST_GROUP -> Select LPE / INAV / EKF2
As I understand, the local coordinate X should be aligned with north? Is there a way of running this system without compass? I think an EKF should be able to filter out the yaw deviation if the drone is moving.
Does someone have tested these options?
Whats the best filter? LPE / INAV or EKF2 for this setup?
Whats the best way of sending the position? VISION_POSITION_ESTIMATE or ATT_POS_MOCAP?
As it seams, EKF2 uses also the attitude from the vision data. How is this used?
MASK_ROTATE_EV seams to rotate the VISION frame to the navigation frame by vehicle_vision_attitude.
MASK_USE_EVYAW seams to use YAW from the vision message instead of YAW from the compass.