I'm trying to build an indoor localization system for quadrotor. I'll start with definition of my system:
Indoor localization system: marvelmind beacons http://www.marvelmind.com/
Quadrotor: dji f450 frame with raspberry pi + pixhawk onboard. From raspberry pi fake gps signal is made and transmitted to the gps port on pixhawk.
What do i want to get?
I want to use pixhawk gps autopilot to control quadrotor indoor. I want to get the information about 2d position from fake gps. Altitude information from gps should be ignored, beacuse altitude i want to get from barometer/sonar.
What did i get at this moment?
Fake gps is well passed from rpi to pixhawk. But the apm fimrware corrects this data, so drones trajectory signicantly differs from fake gps data trajectory. If I stop the dron movement, than after 10 seconds drone position stabilizes and converges to fake gps data.
Altitude information from fake gps is incorrect.
Currently I control the flight in guided mode (in auto mode it won't start mission, just disarms in 10 secs).
It well takeoffs, but cannot hold position. It listens to command fly to some point, but EKF position changes not in a way Fake GPS changes. As a result in cannot hold position(it constantly tries to move forward in the same direction all time), but can move in a right position after fly to some point command.
1) How can I make bigger prioriry for fake gps data? So the EKF position will change in a way gps chages.
I tried to solve this by setting next parameters:
EKF_GPS_TYPE = 1 (use GPS 2d velocity and 2d position)
EKF_POS_DELAY = 95 (fake gps is sent at 11 hz)
EKF_POSNE_NOISE = 0.1 (min allowed value)
EKF_VEL_delay = 95 (fake gps is sent at 11 hz)
EKF_VELD_NOISE = 0.05 (min allowed value)
2) Im auto mode it ignores mission, just disarms in 10 sec. WIth real gps everything works well.What possible things lead to this?marvelmind.param
P.S. I attached full param list to the message