Local_position_estimator details

I have developed a custom controller. I am accessing current altitude value from the file vehicle_local_position. altitude value that I am getting using local_position_estimator is always zero. If I use position_estimator_inav than it is working fine . I want to know which one is better among position_estimator_inav, local_position_estimator and ekf2?. and If I need to use local_position_estimator data than how can I use it?.
Note : If I am uploading the px4 stack using qgroundcontrol than local_position_estimator is working fine but I need to use my custom code with px4 so I am building the code and than uploading it manually.

@mahesh_saraswat In general: local_position_estimator and ekf2 are the ones being developed at the moment and should work well. INAV has been there for a long time and should be reliable regarding gps flight, however, nobody is working on it anymore and it may not be as accurate as the other two estimators. I think you should report your problems with the local_position_estimator (zero altitude issue) and also give ekf2 a shot. @jgoppert @mhkabir