0

Running dronekit-python with ArduCopter as SITL. When specifying a velocity (only) in the set_position_local_ned_encode, the drone moves for a few seconds and stops.

This happens both with the example code (guided_set_speed_yaw.py) and a very small test program that ONLY does the set_position after the appropriate init. All other parts of all examples seem to work fine.

All running on Fedora. I don't see this listed as a bug, or any issues related to this. Any ideas or pointers are appreciated.

ejg2putt
  • 3
  • 2

2 Answers2

2

ArduCopter 3.3-rc9 added a 3 second velocity timeout. This is to prevent a lost connection from causing a flyaway. To continue flying in the same direction, just send the same packet repeatedly.

squilter
  • 400
  • 1
  • 6
  • Awesome, thanks. Turns out we'll be updating the velocity at a 1 or 2 second interval, so that'll work for us. – ejg2putt Sep 05 '15 at 11:47
0

For future readers, the exact definition by Ardupilot:

Starting in Copter 3.3, velocity commands should be resent every second (the vehicle will stop after a few seconds if no command is received). Prior to Copter 3.3 the command was persistent, and would only be interrupted when the next movement command was received.

And by Dronekit:

From Copter 3.3 the vehicle will stop moving if a new message is not received in approximately 3 seconds. Prior to Copter 3.3 the message only needs to be sent once, and the velocity remains active until the next movement command is received. The example code works for both cases!

Alexander
  • 921
  • 3
  • 12
  • 31