diff --git a/Code/Control/Laptop_Code/ESP32_AT/imageTread_AT.py b/Code/Control/Laptop_Code/ESP32_AT/imageTread_AT.py
index fd39118bde4a5c31f7d1d3f9c4117676820b4c0a..524fd94888b053838840213a986b61316ea54d4c 100644
--- a/Code/Control/Laptop_Code/ESP32_AT/imageTread_AT.py
+++ b/Code/Control/Laptop_Code/ESP32_AT/imageTread_AT.py
@@ -2,7 +2,7 @@ import cv2
 from urllib.request import urlopen, Request
 import numpy as np
 import time
-
+import math
 # import apriltag
 from pupil_apriltags import Detector
 def nothing(x):
@@ -11,16 +11,24 @@ def nothing(x):
 
 # detector = apriltag.Detector()
 
-detector = Detector()
+
 
 def get_AT_6DOF_info(url):
+    tid,tx,ty,tz= 0,0,0,0
+    rx = [0.0,0.0,0.0]
+    ry = [0.0, 0.0, 0.0]
+    rz = [0.0, 0.0, 0.0]
+
     header = {
         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36."}
     req = Request(url, headers=header)
     img_resp = urlopen(req, timeout=60)
     imgnp = np.array(bytearray(img_resp.read()), dtype=np.uint8)
     frame = cv2.imdecode(imgnp, -1)
+
+    # ret,frame = cap.read()
     gray_image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+
     h, w, _ = frame.shape
     # put a dot in center of the frame
     cv2.circle(frame, (w // 2, h // 2), 7, (255, 0, 0), -1)
@@ -41,6 +49,7 @@ def get_AT_6DOF_info(url):
         ptA = (int(ptA[0]), int(ptA[1]))
         tx, ty, tz = r.pose_t # in meters
         rx,ry,rz = r.pose_R
+        tid = r.tag_id
 
         # draw the bounding box of the AprilTag detection
         cv2.line(frame, ptA, ptB, (0, 255, 0), 5)
@@ -55,7 +64,8 @@ def get_AT_6DOF_info(url):
 
 
         tagFamily = r.tag_family.decode("utf-8")
-        tid = r.tag_id
+        
+        
         cv2.putText(frame, tagFamily, (ptA[0], ptA[1] - 15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
 
         cv2.putText(frame, "tx: {:.2f}  ty: {:.2f}  tz:{:.2f}".format(tx[0], ty[0], tz[0]), (ptA[0], ptA[1] + 30),
@@ -71,20 +81,35 @@ def get_AT_6DOF_info(url):
 
     return tid,tx,ty,tz,rx,ry,rz
 
+
+def rotationMatrixToEulerAngles(rx,ry,rz) :
+
+    sy = math.sqrt(rx[0] * rx[0] + ry[0] * ry[0])
+    roll = math.atan2(rz[1] , rz[2])
+    pitch = math.atan2(-rz[0], sy)
+    yaw = math.atan2(ry[0], rx[0])
+
+    return np.array([roll, pitch, yaw])
 if __name__ == "__main__":
     #change the IP address below according to the
     #IP shown in the Serial monitor of Arduino code
     # url='http://192.168.4.1/cam-hi.jpg'
     # url='http://192.168.1.107/cam-hi.jpg'
     url='http://192.168.4.1/cam-hi.jpg'
-    # url = 'http://192.168.1.118/cam-hi.jpg'
+    url = 'http://192.168.1.118/cam-hi.jpg'
 
 
     # cv2.namedWindow("live transmission", cv2.WINDOW_AUTOSIZE)
 
     # cv2.namedWindow("live transmission", cv2.WINDOW_NORMAL)
 
+    detector = Detector()
+    tid,tx,ty,tz,rx,ry,rz = 0,0,0,0,0,0,0
+    test_webcam = 0
+    if test_webcam == 1:
+        cap = cv2.VideoCapture(0)
     while True:
+        """
         header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36."}
         req = Request(url, headers=header)
         img_resp = urlopen(req, timeout=60)
@@ -97,7 +122,7 @@ if __name__ == "__main__":
 
         # put a dot in center of the frame
         cv2.circle(frame, (w//2, h//2), 7, (255, 0, 0), -1)
-
+        """
         """
         If you also want to extract the tag pose, estimate_tag_pose should be set to True
         and camera_params ([fx, fy, cx, cy])
@@ -117,6 +142,7 @@ if __name__ == "__main__":
         fx, fy, cx, cy are given in Pixels in Computer Vision ( and openCV)
         but e.g. in Photogrammetry you often use mm
         """
+        """
         fx = 800
         fy = 600
         cx = 400
@@ -156,11 +182,24 @@ if __name__ == "__main__":
 
         # show the output image after AprilTag detection
         cv2.imshow("Image", frame)
+        """
+        tid,tx,ty,tz,rx,ry,rz = get_AT_6DOF_info(url)
 
+        print("testing new function")
+        print("-----------------------")
+        print("tid:{}".format(tid))
+        print("tx,ty,tz:{},{},{}".format(tx,ty,tz))
+        print("rx,ry,rz:{},{},{}".format(rx,ry,rz))
+
+        # R = np.array([rx,ry,rz])
+        roll,pitch, yaw = rotationMatrixToEulerAngles(rx,ry,rz)
+        roll = roll * 180 /math.pi
+        pitch = pitch * 180 / math.pi
+        yaw = yaw * 180 / math.pi
+        print("roll,pitch,yaw:{},{},{}".format(roll, pitch, yaw))
 
         key=cv2.waitKey(5)
         if key==ord('q'):
             break
 
-
     #cv2.destroyAllWindows()