Piloting_pcmd command not working?

Hello, I’m wondering if I have implemented this piloting_pcmd command wrong? For some reason the drone does not respond to it at all. My goal is to find the minimum time needed to see an action in the drone e.g. if I set the duration to 0.001s would the drone react.

# -*- coding: UTF-8 -*-

import olympe
import time
from olympe.messages.ardrone3.PilotingState import PilotedPOI
from olympe.messages.ardrone3.Piloting import TakeOff, StartPilotedPOI, Landing, StopPilotedPOI

DRONE_IP = "192.168.42.1"


def main():
    drone = olympe.Drone(DRONE_IP)
    drone.connect()
    assert drone(TakeOff()).wait().success()
    time.sleep(2)	
    drone.start_piloting()
    
    #starting timer		
    start = time.time()
    print("MOVING FORWARD COMMAND START")
    drone.piloting_pcmd(0, 50, 0, 0, 1)
    #drone.piloting_pcmd(roll=0, pitch=50, yaw=0, gaz=0, piloting_time=1)

    #ending timer
    end = time.time()

    drone.stop_piloting()
    assert drone(Landing()).wait().success()
    drone.disconnect()
    print("TIMER VALUE: %f" % (end-start))


if __name__ == "__main__":
    main()

Hi,
I am hitting the same issue, did you figure it out in the end ?

Ended up just having to add a time.sleep(dt) after using drone.piloting_pcmd(0, 50, 0, 0, dt). Seems like the smallest time duration, dt you can set to still see a movement is 0.2 seconds.

Try a delay of 0.05 time.sleep(0.05) . It works fine to me

1 Like