original_docstring: 
      Send the current Crazyflie X, Y, Z position and attitude as a (3x3)
      rotaton matrix. This is going to be forwarded to the Crazyflie's
      position estimator.
      By default the attitude is not sent.
      
docstring: Send the current Crazyflie X, Y, Z position and attitude as a (3x3)
  rotaton matrix. This is going to be forwarded to the Crazyflie's
  position estimator.
  By default the attitude is not sent.
docstring_tokens: Send the current Crazyflie X Y Z position and attitude as a ( 3x3 ) rotaton matrix . This is going to be forwarded to the Crazyflie ' s position estimator . By default the attitude is not sent .
code: def send_extpose_rot_matrix(scf: SyncCrazyflie, x, y, z, rot):
      """
      Send the current Crazyflie X, Y, Z position and attitude as a (3x3)
      rotaton matrix. This is going to be forwarded to the Crazyflie's
      position estimator.
      By default the attitude is not sent.
      """
      cf = scf.cf
  
      if SEND_FULL_POSE:
          trace = rot[0][0] + rot[1][1] + rot[2][2]
          if trace > 0:
              a = _sqrt(1 + trace)
              qw = 0.5*a
              b = 0.5/a
              qx = (rot[2][1] - rot[1][2])*b
              qy = (rot[0][2] - rot[2][0])*b
              qz = (rot[1][0] - rot[0][1])*b
          elif rot[0][0] > rot[1][1] and rot[0][0] > rot[2][2]:
              a = _sqrt(1 + rot[0][0] - rot[1][1] - rot[2][2])
              qx = 0.5*a
              b = 0.5/a
              qw = (rot[2][1] - rot[1][2])*b
              qy = (rot[1][0] + rot[0][1])*b
              qz = (rot[0][2] + rot[2][0])*b
          elif rot[1][1] > rot[2][2]:
              a = _sqrt(1 - rot[0][0] + rot[1][1] - rot[2][2])
              qy = 0.5*a
              b = 0.5/a
              qw = (rot[0][2] - rot[2][0])*b
              qx = (rot[1][0] + rot[0][1])*b
              qz = (rot[2][1] + rot[1][2])*b
          else:
              a = _sqrt(1 - rot[0][0] - rot[1][1] + rot[2][2])
              qz = 0.5*a
              b = 0.5/a
              qw = (rot[1][0] - rot[0][1])*b
              qx = (rot[0][2] + rot[2][0])*b
              qy = (rot[2][1] + rot[1][2])*b
          cf.extpos.send_extpose(x, y, z, qx, qy, qz, qw)
      else:
          cf.extpos.send_extpos(x, y, z)
code_tokens: def send_extpose_rot_matrix ( scf : SyncCrazyflie , x , y , z , rot ) : cf = scf . cf if SEND_FULL_POSE : trace = rot [ 0 ] [ 0 ] + rot [ 1 ] [ 1 ] + rot [ 2 ] [ 2 ] if trace > 0 : a = _sqrt ( 1 + trace ) qw = 0.5 * a b = 0.5 / a qx = ( rot [ 2 ] [ 1 ] - rot [ 1 ] [ 2 ] ) * b qy = ( rot [ 0 ] [ 2 ] - rot [ 2 ] [ 0 ] ) * b qz = ( rot [ 1 ] [ 0 ] - rot [ 0 ] [ 1 ] ) * b elif rot [ 0 ] [ 0 ] > rot [ 1 ] [ 1 ] and rot [ 0 ] [ 0 ] > rot [ 2 ] [ 2 ] : a = _sqrt ( 1 + rot [ 0 ] [ 0 ] - rot [ 1 ] [ 1 ] - rot [ 2 ] [ 2 ] ) qx = 0.5 * a b = 0.5 / a qw = ( rot [ 2 ] [ 1 ] - rot [ 1 ] [ 2 ] ) * b qy = ( rot [ 1 ] [ 0 ] + rot [ 0 ] [ 1 ] ) * b qz = ( rot [ 0 ] [ 2 ] + rot [ 2 ] [ 0 ] ) * b elif rot [ 1 ] [ 1 ] > rot [ 2 ] [ 2 ] : a = _sqrt ( 1 - rot [ 0 ] [ 0 ] + rot [ 1 ] [ 1 ] - rot [ 2 ] [ 2 ] ) qy = 0.5 * a b = 0.5 / a qw = ( rot [ 0 ] [ 2 ] - rot [ 2 ] [ 0 ] ) * b qx = ( rot [ 1 ] [ 0 ] + rot [ 0 ] [ 1 ] ) * b qz = ( rot [ 2 ] [ 1 ] + rot [ 1 ] [ 2 ] ) * b else : a = _sqrt ( 1 - rot [ 0 ] [ 0 ] - rot [ 1 ] [ 1 ] + rot [ 2 ] [ 2 ] ) qz = 0.5 * a b = 0.5 / a qw = ( rot [ 1 ] [ 0 ] - rot [ 0 ] [ 1 ] ) * b qx = ( rot [ 0 ] [ 2 ] + rot [ 2 ] [ 0 ] ) * b qy = ( rot [ 2 ] [ 1 ] + rot [ 1 ] [ 2 ] ) * b cf . extpos . send_extpose ( x , y , z , qx , qy , qz , qw ) else : cf . extpos . send_extpos ( x , y , z )
short_docstring: Send the current Crazyflie X, Y, Z position and attitude as a (3x3)
  rotaton matrix.
short_docstring_tokens: Send the current Crazyflie X Y Z position and attitude as a ( 3x3 ) rotaton matrix .
comment: """
      Send the current Crazyflie X, Y, Z position and attitude as a (3x3)
      rotaton matrix. This is going to be forwarded to the Crazyflie's
      position estimator.
      By default the attitude is not sent.
      """