EKF2 Initialization without GPS fusion

Hi all,

setting the bit mask in EKF2 to visual odometry, I face a confusion situation during start up. I am using a onboard odometry system, which works fine with LPE. During start up the following happens:

  1. Booting PX4
  2. Initializing odometry and sending odometry messages to PX4 via MAVlink

Result: Neither local nor global position are estimated

If I now reboot PX4, while keeping the odometry up, local position is initialized and estimated by EKF2 (although no GPOS). LPOS is very accurate (better than LPE).

What is the correct sequence of MAVLink commands to initialize EKF2 without GPS? Is there a possibility to initialize EKF2 with the origin via MAVLink ( set_global_gps_origin message did not work) to obtain a global position without GPS?


Setting the EKF2 origin using the mavlink command is currently not supported so there is no ability to provide global coordinates. Local position estimation using on-board odometry is a recent feature but should be working for the start order you describe. Can you please provide a log showing the failure to estimate local position that occurs when PX4 is booted before receipt of odometry messages. You will need to set SDLOG_MODE to start logging from boot.

Thanks for your support here. The booting issue was solved on my side. Due to multiple dependencies, I waited for LPOS being valid before sending any odometry data.