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
Greetings,
Pedro