ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.46k stars 17.11k forks source link

measure servo lag in manual #1816

Closed tridge closed 9 years ago

tridge commented 9 years ago

Setup a logic analyser to directly measure the lag in manual with the fixed wing code to address this concern: http://ardupilot.com/forum/viewtopic.php?f=102&t=10296&p=28181#p28181

tridge commented 9 years ago

Here are some screenshots from a logic analyser measuing the servo lag with APM:Plane 3.2.1. I used a taranis transmitter setup to switch channel 1 between 990usec and 2014usec on a switch (trainer switch). The logic analyser tracked both direct direct output from the X6R receiver and the output from channel 1 of a Pixhawk. That means it directly measures the servo lag with high accuracy. For each example below I show the measured lag from the logic analyser: http://uav.tridgell.net/ServoLag/servo-delay1.png 29.5ms http://uav.tridgell.net/ServoLag/servo-delay2.png 17.5ms http://uav.tridgell.net/ServoLag/servo-delay3.png 21.5ms http://uav.tridgell.net/ServoLag/servo-delay4.png 43.5ms http://uav.tridgell.net/ServoLag/servo-delay5.png 25.5ms The raw Saelae logic16 capture is here: http://uav.tridgell.net/ServoLag/ServoLag.logicdata A lag of between 20ms and 40ms is normal, because input is read at 50Hz, and output is updated at 50Hz, so sometimes we have a 2 sample delay.

http://uav.tridgell.net/ServoLag/ServoLag.logicdata

This demonstrates that there is no significant servo lag due to the Pixhawk or APM:Plane software (40ms is quite acceptable for manual flight). Note that there can be (and often is) delay due to other components. The most common is due to insufficient power to the servo rail.