SICK LMS511开发及数据结构分析、坐标转换

SICK LMS511开发及数据结构分析、坐标转换

最近公司有新上的项目,开始接触激光扫描仪,型号SICK LMS511。

获取数据

在网上看了一些资料,有通过SICK自带的软件看了一下激光扫描仪的配置,实际上可以将激光扫描仪视作socket server,只要用自己熟悉的语言编写client程序就可以了。因为现在是项目的初期阶段,我用python简单写了个程序作为测试用途,后期为方便与其他程序对接,可能会换C#或Java。

// An highlighted block
def startclient():
    """

    :return:
    """
    BUFSIZE = 40000
    ADDR = (HOST, PORT)

    while True:
        data = input('>')
        #data = '02 73 52 4E 20 4C 4D 44 73 63 61 6E 64 61 74 61 03'
        if not data:
            break
        bites = getcmd(data)
        cmdstring = bytearray(bites, encoding='utf-8')
        print(cmdstring)
        tcpclisocket = socket(AF_INET, SOCK_STREAM)
        tcpclisocket.connect(ADDR)
        tcpclisocket.send(cmdstring)
        pcddata = tcpclisocket.recv(BUFSIZE).decode()
        print(pcddata)
        caldata(pcddata)
        tcpclisocket.close()
def getcmd(hexstring):
    """

    :param hexstring:
    :return:
    """
    hexstring = hexstring.replace(" ", "")
    if (len(hexstring) % 2) != 0:
        hexstring += " "
    bits = ""
    for x in range(0, len(hexstring), 2):
        bits += chr(int(hexstring[x:x + 2], 16))
    return bits

上面的程序包含了指令格式转换、向socket server发送指令及数据接收。向激光扫描仪发送的单次测量指令为:

02 73 52 4E 20 4C 4D 44 73 63 61 6E 64 61 74 61 03

这样可以从激光扫描仪中获取一次数据,形式如下:

sRA LMDscandata 0(版本号) 1(设备号) 11740A4(序列号) 0 0(设备状态) 174C(指令计数) BB30(扫描计数) C1E6D829(开始时
间) C1E72134(发送时间) 0 0(数字量输入) 3F 0(数字量输出) 0(保留) 1388(5000HZ) 168(每次扫描频率) 0(没有编码器) 
1(输出通道1) DIST1(回波层) 40000000(系数)00000000(系数偏移量) AAE60(开始角度) 1388(角度分辨率) 51(扫描点个数) 
380(第一个扫描点,单位mm) 388 386 37A 36D 35F 35E 35C 35D 35B 354 361 34C 324 32E 33F 32F 34A 345 347 33A 
32B 32F 339 33D 33C 33C 33C 33B 337 339 311 309 304 331 30B 30D 333 331 320 332 331 331 331 32E 32F 332 
330 332 331 331 334 336 337 335 337 337 336 33C 338 339 341 340 33F 341 344 344 352 17D 147 142 13C 136 
130 12D 129 123 121 11D 119 113 0 0 0 0 0 0

上述是获取到的数据的数据结构,上述的数据是在极坐标下的数据,知道每个点的距激光扫描仪中心点的距离和角度,那么可以根据公式转成直角坐标系下的数据

效果图对比

SICK LMS511开发及数据结构分析、坐标转换_第1张图片
SICK LMS511开发及数据结构分析、坐标转换_第2张图片
可以看出来基本上是吻合的。

代码资源:https://download.csdn.net/download/baidu_33251089/10755381

你可能感兴趣的:(视觉)