Olympe Set Velocity

Hello,

We are trying to set the drone’s velocity in three dimensions, similar to this MAVLink command. Unfortunately, it seems as though the only way to achieve this is to use sequential PCMD commands (attitude control) to achieve the correct speed. This involves creating a control loop which in practice has been hard to tune properly. Is there any native solution in Olympe that would work better? Thanks for your help.

Hello,

From Olympe Team information :

On Anafi AI you should be able to do it using the commands MaxPitchRollRotationSpeed, MaxRotationSpeed, MaxVerticalSpeed.

To verify the values, use the associated events : MaxPitchRollRotationSpeedChanged, MaxRotationSpeedChanged, MaxVerticalSpeedChanged.

And doing something like this :

import olympe from olympe.messages.ardrone3.Piloting import TakeOff, Landing from olympe.messages.ardrone3.SpeedSettings.MaxPitchRollRotationSpeed, MaxPitchRollRotationSpeedChanged   

drone=olympe.Drone("10.202.0.1") 
assert drone.connect()   
takeoff_expectation=drone(TakeOff()).wait(_timeout=45) 
assert takeoff_expectation.success()   
speed_expectation=drone(MaxPitchRollRotationSpeed(current=XX)).wait(_timeout=15) 
assert speed_expectation.success()   
speed_changed_expectation=drone(MaxPitchRollRotationSpeedChanged(current=XX).wait(_timeout=15) 
assert speed_changed_expectation.success()   

# mouvement via PCMD ou command type move_by_end/move_to/point_and_fly   
land_expectation=drone(Land()).wait(_timeout=45) 
assert land_expectation.success()   
assert drone.disconnect()

Hugo