MassageRobot_Dobot/Massage/MassageControl/tools/get_visual_valibration_pose.py
2025-05-27 16:48:55 +08:00

36 lines
1.1 KiB
Python

from hardware.dobot_nova5 import dobot_nova5
import cv2
from hardware.remote_cam import ToolCamera
import threading
import keyboard
import numpy as np
class Getpose:
def __init__(self):
self.arm = dobot_nova5("192.168.5.1")
self.arm.start()
self.cam = ToolCamera(host='127.0.0.1')
self.cam.start()
self.thread1=threading.Thread(target=self.show)
self.thread1.start()
self.data=[]
self.arm.start_drag()
def show(self):
while True:
rgb, depth, intrinsics = self.cam.get_latest_frame()
cv2.imshow(rgb)
def add_data(self):
angle=self.arm.getAngel()
self.data=self.data.append(angle)
print(angle)
def save_data(self):
data=np.array(self.data)
np.savetxt('pose.txt', data ,fmt='%.5f')
if __name__ == "__main__":
sele=Getpose()
keyboard.add_hotkey('ctrl+shift+a', lambda: sele.add_data())
keyboard.add_hotkey('ctrl+shift+s', lambda: sele.save_data())
keyboard.add_hotkey('ctrl+shift+c', lambda: sele.arm.disableRobot())
# 阻塞监听(保持程序运行)
keyboard.wait('esc') # 按ESC退出