we are using precision landing for a quadcopter (ArduCopter, version 4.1.5) with an onboard computer NVIDIA Jetson Nano and a Raspberry camera. I used ArUco marker as the landing pad and Dronekit API. I tested the MAVlink message on SITL and ROS/Gazebo, and everything is fine, drone could move to landing target.
I also set the:
PLND_ENABLED =1 (turn on the Precision Landing mode)
PLND_TYPE = 1 (for companion computer)
PLND_EST_TYPE = 0
But in real tests, it seems the copter does not follow the landing pad when I switch to Landing mode. The landing pad was detected and this was shown in my record video. All the values under PL section in the data flash log are zero. Meanwhile, the result in the environment was OK.
In the MAVLink inspector, I could see the LANDING_TARGET from Vehicle 255, but nothing in PL logs.
(The MAVLink inspector)
(Nothing in PL section file log, real test)
(in ROS/Gazebo, PL was fine)
Every help is appreciated, thank you in advance.
Sorry, i have no time to look at your logs, but i can confirm that companion computer , aruco based Precision landing is working great with arducopter 4.1.5. Raw estimator.
Less than 15cm error with an 11Kg octaquad.
I thought my problem was that I did not use a proper rangefinder. I wonder if I could create a virtual rangefinder like you answered in this topic.
Precision Landing: receiving Mavlink Messages but drone is not taking orders - ArduCopter / Copter 4.1 - ArduPilot Discourse
Can you give me any ideas to create the virtual rangefinder and how to use this with Landing_Target message? Thank you in advance.
Use the distance information to the tag to create a range finder mavlink message. It is very simple to do.
The range i formation will start to appear in the .bin log files once all is configured properly
Both need to be sent at between 5 and 20Hz.
It whould be great if you could help us out by updating the ardupilot wiki with the information you gathered. Pull requests are welcome.
The next users of this feature would also be happy
Sorry for such a long time no respond. I did the test of precision landing using two MAVLink message: Landing Target and Distance Sensor. It was successful.
Fig.: angle_x, angle_y angular offset of the target from the center of the image in the real-world flight tests
Fig. : Velocity of the drone in the horizontal plane in the real-world flight tests.
Fig.: Position of the drone with respect to the markers on the ground in the real-world flight tests.
However I will send you three graphes of Precision landing.
It can be explained that: When the UAV begins to fly toward the target and reaches the desired position, it levels to land on the target. However, because of its inertia, its speed does not equal zero when it reaches the destination. Therefore, the UAV overshoots and begins braking behind the target, then begins flying in the opposite direction, overshoots again, and so on, until the target’s angular offset from the image center is small enough.
I want to ask you if there is any solution to reduce the influence of the inertia. Even when I reduced the WPNAV_ACCEL parameter and WPNAV_SPEED, it seemed not work too well.
Thank you for spending time for me.
The graphs look very similar to our own system and results. yes reducing the accel and jerk reduces the overshoots.
Have you done the wiki pull request?