I am flying a drone using guided mode and setpoint raw commands. The commands include both lat/lon and XYZ velocity (neither input is ignored). When I command a higher velocity (3-5 m/s), the velocity works. But when I command a lower velocity (<1 m/s) the velocity does not change. There is no perceptible difference between a command that sends 1 m/s, 0.5 m/s and even 0.1 m/s. The drone should be crawling but I would guess it is moving over 1 m/s.
Am I doing something wrong?
Thank you for your help.
So actually, the very next thing I tried after posting this question worked. I switched to only sending velocities instead of both lat/lon and velocities and the drone now follows my velocity commands correctly.
However, now the drone’s acceleration is very limited. It takes a few seconds to get up to speed, but more importantly, it takes a few seconds to slow down again once it reaches my waypoint, overshooting it by as much as 20 meters. On return it overshoots again, oscillating around the waypoint.
I didn’t have long to experiment after this, but I tried setting PSC_VELXY_P to a significantly higher value (I figured a velocity PID parameter might produce faster acceleration/deceleration) but saw no difference in performance.
Is there a parameter I can set to change this behavior? Or do I need to get into sending acceleration commands as well?
I am just curious that how have you used the parameter “WPNAV_ACCEL” on GUIDED mode. When we see the description of the parameter, it says:
Waypoint Acceleration; Defines the horizontal acceleration in cm/s/s used during missions
Question 1.
When we change to the GUIDED mode and send the only-velocity commands to it, how do we tell the drone whether it reaches our target waypoint or not (except for the AUTO mode)?