|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2018-6-22 11:32:34
|
显示全部楼层
from transformation import * #是把一个模块中所有函数都导入进来; 注:相当于:相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径。
import threading # 导入模块,每次使用模块中的函数都要是定是哪个模块
import json # 导入模块,每次使用模块中的函数都要是定是哪个模块
import time # 导入模块,每次使用模块中的函数都要是定是哪个模块
import SocketServer # 导入模块,每次使用模块中的函数都要是定是哪个模块模块
vision_channel = grpc.insecure_channel('localhost:50051')
vision_stub = VisionServerStub(channel=vision_channel)
from Tkinter import Tk, Button #是把一个模块中所有函数都导入进来; 注:相当于:相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径。
class RobotHandler(SocketServer.BaseRequestHandler): # 类定义
def handle(self): #定义一个函数handle(self):
unit = [1000, 180.0 / math.pi]
while True:
temp = self.request.recv(256) # 当temp = self.request.recv(256) 字节长度为256
print temp # 打印 temp
data = map(float, temp.split()) # 将map(float,temp.split()) 赋值到data map映射temp切片为浮点型转型作用
if len(data) == 0: #判断data 的长度是否为 0
return
if int(data[0]) == 0:
input = CalibrateInput() #输入为 CalibrateInput() 校正输入()
input.camera_id.camera_id = 0 #输入相机校准参数
input.current_pose.position.x = data[1] / unit[0]
input.current_pose.position.y = data[2] / unit[0]
input.current_pose.position.z = data[3] / unit[0]
quat = quaternion_from_euler(data[4] / unit[1], data[5] / unit[1], data[6] / unit[1])
input.current_pose.orientation.x = quat[0]
input.current_pose.orientation.y = quat[1] # 机器人校正示教点的空间坐标6个信息
input.current_pose.orientation.z = quat[2]
input.current_pose.orientation.w = quat[3]
if int(data[7]) == 0: # 假如 data[7] == 0
input.terminate = True # 输入终止
else: # 否则 校正终止= false
input.terminate = False
vision_stub.DoCalibration(input) # Docalibration 输入相机校准参数
self.request.send("'0'") # 答复发送'0'到客户端
continue # ???? |
|