LPE doesn't run on PX4 1.5.3

Hi, I’m testing position control mode with Optitrack motion capturing system.
In SITL mode, LPE and ATT_POS_MOCAP work well but in PX4 FMU, it didn’t.
So I fixed the EKF2 and LPE source code to write some message on the SD card, then I realized the EKF2 was running.

I tried three ways below, but none of them worked

  • set SYS_MC_EST_GROUP to 1 (use LPE) via QGC. I check the value of it after reboot PX4 FMU and it is still 1
  • fix source code to set SYS_MC_EST_GROUP to 1, then compile and upload to the PX4 FMU
  • write some command lines in SD card, /etc/extras.txt
    ekf2 stop
    attitude_estimator_q start
    local_position_estimator start

Did I make a mistake or is it a bug?

In Firmware/cmake/configs/nuttx_px4fmu-v2_default.cmake,
modules/position_estimator_inav
modules/local_position_estimator
was commented.

Uncommenting them solves this problem.

Hi, how did you generate ATT_POS_MOCAP data in SITL mode?
It seems that in SITL mode, the accuracy of local_position is quite well.

Oh, I used SITL to check only whether the messages are published well.
The motion capture system I used was real one.

So which topic did you choose? For MAVROS, did you choose mocap/pose to publish the motion capture data?

Yes.

First, I used vrpn_client_ros node to transform vrpn stream to MAVROS messages.
The name of the message is depends on the name of the rigid body’s name defined on Motive (Optitrack software).
Then I used “remap” in roslaunch file launches vrpn_client_ros node to rename the topic to “/mavros/mocap/pose”

Thanks for your kind reply. Recently, we would like to control our quadrotor indoor with the help of VICON localization using OFFBOARD control. But we met a strange behaviour that the vehicle take off aggressively and did not maneuver normally, though we set the set_point fixed. The log file is http://logs.uaventure.com/view/K7pJNTHtvxZZBUXrn5Qiz4 and the related video is https://www.youtube.com/watch?v=CklqJmYQlFw.

  • The motion capture system we used is VICON and we publish the VICON data to mavros/mocap/pose as well.

  • The VICON coordinate is ENU(x is pointing to the right, y is the forward, and z is the down) whose origin point, (0, 0, 0), and this coordinate is also the coordinate for mavros/local_position/pose.

  • Previously, as shown in this issue(https://github.com/PX4/Firmware/issues/6106#issue-196615977), the vehicle maneuvered aggressively at the very beginning and could be controlled normally using keyboard in OFFBOARD mode.

Questions:

  • Did you encounter similar performance?
  • Did you tune the LPE_VIC_P and ATT_EXT_HDG_M and turn off the LPE_GPS_ON and LPE_VIS_ON ?
  • Which Firmware version did you choose?