Landing target (with apriltags)

Hi there,
I am currently trying to perform the precision landing over an apriltag under Gazebo SITL.
I can detect and retrieve the coordinates from the AprilTag on the ground. Now my issue is how does Px4 handles this messages?
Following topics are published by mavros:

Here my startup from the mavros node

  • /mavros/landing_target/camera/fov_x: 2.0071286398
  • /mavros/landing_target/camera/fov_y: 2.0071286398
  • /mavros/landing_target/image/height: 480
  • /mavros/landing_target/image/width: 640
  • /mavros/landing_target/land_target_type: VISION_FIDUCIAL
  • /mavros/landing_target/listen_lt: True
  • /mavros/landing_target/mav_frame: LOCAL_NED
  • /mavros/landing_target/target_size/x: 0.3
  • /mavros/landing_target/target_size/y: 0.3
  • /mavros/landing_target/tf/child_frame_id: camera_center
  • /mavros/landing_target/tf/frame_id: landing_target
  • /mavros/landing_target/tf/listen: True
  • /mavros/landing_target/tf/rate_limit: 10.0
  • /mavros/landing_target/tf/send: True

and from PX4

[ INFO] [1599479871.773102138]: Listen to landing_target transform landing_target → camera_center
[ INFO] [1599479871.773265766]: Plugin landing_target initialized

According to https://mavlink.io/en/services/landing_target.html I publish on the /mavros/landing_target/raw the AprilTag coordinates.

here part of my code

precland_msg_publisher = nh_.advertise<mavros_msgs::LandingTarget>(“/mavros/landing_target/raw”, 10);
mavros_msgs::LandingTarget msg_landing_target;

msg_landing_target.header.frame_id = transform.frame_id_;
msg_landing_target.header.stamp = transform.stamp_;
msg_landing_target.typmavros_msgs::LandingTarget::VISION_FIDUCIAL;
msg_landing_target.frame = mavros_msgs::LandingTarget::LOCAL_NED;
msg_landing_target.pose.position.x = transform.getOrigin().getX();
msg_landing_target.pose.position.y = transform.getOrigin().getY();
msg_landing_target.pose.position.z = transform.getOrigin().getZ();
precland_msg_publisher.publish(msg_landing_target);

Either I am publishing on the wrong topic or there is something that I am missing.
On the QGroundControl I am unable to see the LANDING_TARGET message.
Any idea what might be wrong ?

Much appreciated for any guidance :wink:

Greetings,
Pedro

Hi @pedro , were you able to use PX4 precision landing with Apriltags published to mavros?

Hi @Mzahana yes I am currently using apriltags to perform the precission landing.
But in offboard mode.

Hi Pedro, I am looking into this as well. Do you have any updates?