Precision landing with companion computer - copter logs PLND messages but doesn't track marker

Hi all,

(tagging @LuckyBird, @ppoirier and @rmackay9 as I’ve seen you guys are heavily involved in precision landing)

I’ve got a Raspberry Pi tracking an April Tag publishing its pose with ROS and mavros to the landing_target/pose message.
My Cube Orange flight logs show PL topics. Health and TAcq are good, and pX, pY, vX, vY etc. etc. are all recording data.
However the drone doesn’t even try to track the marker in LAND or LOITER modes. When I activate the precland switch in LOITER mode I sometimes see a small twitch, but it doesn’t make any effort to adjust position over the marker.
Moving the drone by hand and watching the rostopic echo /mavros/landing_target/pose, I can see that the pose seems reasonable. When the tag is behind the drone, X is -ve, when the tag is to the left of the drone, Y is -ve, and the other directions are positive.
At first I thought it was because I didn’t have a rangefinder. I installed and enabled a rangefinder and it still doesn’t track.

I’ve tried with PLND_EST_TYPE using both raw data and EKF.

Here are my PLND parameters:
|PLND_ACC_P_NSE|2.5|
|PLND_BUS|-1|
|PLND_CAM_POS_X|0|
|PLND_CAM_POS_Y|0|
|PLND_CAM_POS_Z|0|
|PLND_ENABLED|1|
|PLND_EST_TYPE|0|
|PLND_LAG|0.02|
|PLND_LAND_OFS_X|0|
|PLND_LAND_OFS_Y|0|
|PLND_TYPE|1|
|PLND_YAW_ALIGN|0|

Any idea why this would be happening?

Bonus question:
In PX4 is can plot local position and velocity setpoints, so I can compare PL.vX with vehicle_local_position.vX to see that it’s trying to respond to the marker tracker. As far as I have found, in Ardupilot I can only plot global position in Lat/Lon. Am I wrong about this and missing some way to plot local pos/vel?

Thanks in advance!
Patrick

Are you sure you entered precision landing mode?

We tested this 50 times in the last 2 weeks, (PLND_EST_TYPE = RAW) on ArduCopter 4.1.5 and it is working fine here.

How can I tell if it’s in precision landing mode?

My procedure as been to loiter above the April Tag and confirm that ROS is reporting landing_target values, then switch to LAND mode using a transmitter switch. It’s just normal LAND mode. The logs have a little tag at that point saying LAND.

Is there something specific to enter precision land mode?

When I’m in LOITER, I flick a switch on my transmitter and the ‘messages’ tab in Mission Planner says ‘Precision loiter switch HIGH’, so I assume I’m in precision loiter there, but nothing happens.