From ff235610bb3995da911b12f1072bd27babe12136 Mon Sep 17 00:00:00 2001
From: Arnaud Taffanel <arnaud@bitcraze.se>
Date: Thu, 30 Mar 2017 17:26:34 +0200
Subject: [PATCH] closes #46: Add support for zdistance commander packet

---
 cflib/crazyflie/commander.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/cflib/crazyflie/commander.py b/cflib/crazyflie/commander.py
index 28cad3b..e5e50db 100644
--- a/cflib/crazyflie/commander.py
+++ b/cflib/crazyflie/commander.py
@@ -37,6 +37,7 @@ __all__ = ['Commander']
 
 TYPE_STOP = 0
 TYPE_VELOCITY_WORLD = 1
+TYPE_ZDISTANCE = 2
 
 
 class Commander():
@@ -98,3 +99,16 @@ class Commander():
         pk.data = struct.pack('<Bffff', TYPE_VELOCITY_WORLD,
                               vx, vy, vz, yawrate)
         self._cf.send_packet(pk)
+
+    def send_zdistance_setpoint(self, roll, pitch, yawrate, zdistance):
+        """
+        Control mode where the height is send as an absolute setpoint (intended
+        to be the distance to the surface under the Crazflie).
+
+        Roll, pitch, yawrate are defined as rad, rad, rad/s
+        """
+        pk = CRTPPacket()
+        pk.port = CRTPPort.COMMANDER_GENERIC
+        pk.data = struct.pack('<Bffff', TYPE_ZDISTANCE,
+                              roll, pitch, yawrate, zdistance)
+        self._cf.send_packet(pk)
-- 
GitLab