【大陆ARS408毫米波雷达】一种利用串口解析雷达数据的方法

硬件平台:ARS408毫米波雷达、can转485转换器、485转串口转换器

软件平台:Windows10、python3

本篇博客实现的功能:

一、通过两个转换器将毫米波雷达的原始数据传入电脑端的串口中

二、再将此数据经过python文件处理得出有效目标探测信息

一、硬件连接

本文中的雷达是利用can协议进行数据通讯,初次接触毫米波雷达,并不清楚如何进行can协议解析,故用曲线救国的方法,将can口转为串口进行数据接受和解析。

首先,毫米波雷达本身can口连接一个can转485转换器

其次,再用485转串口转换器连接到PC端

注:上述设备均可在淘宝购得。

二、软件编写

软件采用python语言。

  1. 首先解决打开串口、接收数据:

运用serial模块

转换为hex显示

import serial
import binascii

def byte_to_hexStr(byte):
    return binascii.hexlify(byte).decode('utf-8')

def get_serial():  # 串口数据处理+接收
    return byte_to_hexStr(ser.read())


ser = serial.Serial("COM3", 115200)  # Open port with baud rate
print("running")
while True:
    data = get_serial()  # ser源读取数据
    print(data)
  1. 解决数据解析:

依照此款毫米波提供的技术文档进行数据解析

文档中的内容如下:

代码如下:

def circular_shift_left(int_value, k, bit=8):
    bit_string = '{:0%db}' % bit
    bin_value = bit_string.format(int_value)  # 8 bit binary
    bin_value = bin_value[k:]
    int_value = int(bin_value, 2)
    #print("取低位:", bin_value)
    return int_value
 
while True:
    #雷达object报头“06 0b”,共9位
    if get_serial() == "06":
        for i in range(9):
            list.insert(i, get_serial())
        if list[0] == "0b":
            print("有效数据", list[0:9])
            #处理有效数据,转为目标信息
            id = int(list[1], 16)   # ID_wei = list[1]
            x1 = int(list[2], 16)   # X_Dist_1_wei = list[2]
            x2 = int(list[3], 16)   # X_Dist_2_wei = list[3]
            y1 = int(list[3], 16)   # Y_Dist_1_wei = list[3]
            y2 = int(list[4], 16)   # Y_Dist_2_wei = list[4]
            xs1 = int(list[5], 16)  # X_Speed_1_wei = list[5]
            xs2 = int(list[6], 16)  # X_Speed_2_wei = list[6]
            ys1 = int(list[6], 16)  # Y_Speed_1_wei = list[6]
            ys2 = int(list[7], 16)  # Y_Speed_2_wei = list[7]
            dyndrop = int(list[7], 16)  # DynDrop_wei = list[7]
            rcs = int(list[8], 16)  # RCS_wei = list[8]

            X_Dist = (x1 << 5 | x2 >> 3) * 0.2 - 500
            Y_Dist = (circular_shift_left(y1, 5, 8) << 8 | y2) * 0.2 - 204.6
            X_Speed = (xs1 << 2 | xs2 >> 6) * 0.25 - 128.0
            Y_Speed = (circular_shift_left(ys1, 2, 8) << 3 | ys2 >> 5) * 0.25 - 64.0
            DynDrop = circular_shift_left(dyndrop, 5, 8)
            RCS = rcs * 0.5 - 64.0
            print('id:', id, 'X位移:', X_Dist, 'Y位移', Y_Dist, 'X速度:', X_Speed, 'Y速度:', Y_Speed, 'DD:', DynDrop, 'RCS:', RCS)

    else:
        pass

完整工程,点击此处下载

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ars408毫米波雷达一种高精度、高可靠性的无人车/智能交通系统所采用的雷达传感器。使用ars408毫米波雷达需要了解其接口文档,以方便使用者进行接线、配置和数据收集等方面的操作。 ars408毫米波雷达的接口文档主要包括以下几个方面: 1.硬件接口:介绍ars408毫米波雷达的接线方式,主要包括雷达的电源接口、CAN接口、以太网接口和IO接口等。 2.软件接口:介绍ars408毫米波雷达与控制系统之间的通讯方式,主要包括CAN、TCP/IP、UDP等。 3.雷达配置:介绍ars408毫米波雷达的各种参数配置,如雷达的安装高度、角度、扫描频率、解析度等。 4.数据格式:介绍ars408毫米波雷达输出的数据格式,主要包括类似于激光雷达的三维距离测量数据、角度测量数据以及反射率等。 5.应用场景:介绍ars408毫米波雷达适用的场景,主要包括无人车、智能交通系统、机器人等。 通过认真阅读ars408毫米波雷达的接口文档,使用者可以清晰地了解ars408毫米波雷达使用方式和性能,从而更好地将其应用于相应的领域,提高其工作效率和精准度。 ### 回答2: ARS408毫米波雷达接口文档是该雷达在安装和使用方面的指南。它提供了雷达设置、数据输出和其他相关信息。该接口文档包括以下内容: 1.雷达的技术规格,包括其扫描频率、面积、检测范围、分辨率和是否兼容多雷达。 2.雷达的安装说明,包括机械结构、点位和支架需要什么,安装时需要遵守的特定步骤和指导。还包括适用的电气设备,例如多个雷达需配合使用的位置和电缆长度等。 3.雷达数据输出规格,包括输出数据格式、数据背景信息、雷达故障诊断和输出故障诊断等内容。它还包括提示如何将雷达数据融合到自动驾驶系统或其他机器视觉系统中。 4.雷达的校准指南,包括如何保持稳定性、检测误差和应有的精度。它还包括如何根据不同应用场景调整雷达参数。 5.雷达的维护指南,包括定期维护步骤,如清除积尘、检查设备中的故障和更换损坏部件。 总之,ARS408毫米波雷达接口文档是一份全面的指导文件,可以帮助用户更好地了解该雷达的性能和使用技巧,从而更好地应用于机器视觉和自动驾驶等领域。 ### 回答3: ARS408毫米波雷达一种常用于车辆自动驾驶系统中的雷达设备。该设备的接口文档包含了一些关于如何使用该设备的重要信息,可以帮助用户更好地理解和操作该设备。 接口文档中包含了设备的硬件接口、数据格式、软件开发库等几个方面的内容。硬件接口包括供电接口、CAN总线接口等;数据格式包括原始数据及其编码方式、坐标系、角度范围等;软件开发库则包含了基于不同平台的开发环境和软件API的使用方法等内容。 通过仔细阅读该设备的接口文档,用户可以了解该设备的技术特点和工作原理,并能够根据自己的需求和应用场景进行相关的数据处理和算法开发。此外,接口文档中还列出了该设备所支持的常见问题和解决方法,用户可以参考这些内容来进行问题排查和故障修复。 总之,ARS408毫米波雷达接口文档是了解和使用该设备的必备资料,能够帮助用户更好地了解和掌握该设备的技术特点和工作原理,提高使用效率和工作质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值