巡线偏移量计算

简介: 【9月更文挑战第24天】

在双轨车道巡线的问题中,偏移量的计算通常基于车道的宽度和摄像头捕捉到的图像中车道的位置。假设车道宽度是固定的,摄像头的分辨率也是已知的,我们可以根据图像中车道中心的位置来计算车辆相对于车道中心的偏移量。

设车道总宽度为 ( W ) ,摄像头宽度为 ( C ) ,图像中左车道中心到图像左侧边缘的距离为 ( L ) ,图像中右车道中心到图像左侧边缘的距离为 ( R ) 。

偏移量 ( O ) 可以根据以下步骤计算:

  1. 计算两车道中心之间的距离
    [ \text{Lane Center Distance} = R - L ]

  2. 计算车辆相对于两车道中心的位置
    如果车辆位于两车道中心,那么 ( L ) 应该等于 ( R - W/2 ) 。

  3. 计算偏移量
    偏移量 ( O ) 可以表示为车辆中心与左车道中心的距离减去车辆中心与右车道中心的距离,然后除以2,再加上车道宽度的一半(因为我们需要计算的是车辆中心相对于车道中心的偏移)。

    [ O = \frac{(R - L) - (W/2 - L)}{2} ]

    简化后得到:

    [ O = \frac{R - W/2}{2} ]

    当车辆向左车道偏移时,( R ) 会小于 ( W/2 ) ,偏移量 ( O ) 为负值;当车辆向右车道偏移时,( R ) 会大于 ( W/2 ) ,偏移量 ( O ) 为正值。

  4. 考虑摄像头宽度
    由于摄像头宽度 ( C ) 为640,如果车道宽度 ( W ) 大于摄像头宽度,那么实际的偏移量需要考虑摄像头的中心点。假设摄像头中心点在图像中的坐标为 ( M ) ,则:

    [ O = \frac{(R - M) - (W/2 - (M - C/2))}{2} ]

    如果车辆位于两车道中心时,( R ) 应该等于 ( M ) ,此时 ( O ) 为0。

  5. 根据给定的最大偏移量调整公式
    根据题目描述,当左车道位于车辆中心时,最大偏移量是-160;当右车道位于车辆中心时,最大偏移量是160。这意味着偏移量的计算需要根据摄像头捕捉到的图像中车道的位置来调整。

    [ O = (R - C/2) - (W/2 - L) ]

    如果 ( R ) 小于 ( C/2 ) ,则 ( O ) 为负值,表示车辆向左偏移;如果 ( R ) 大于 ( C/2 ) ,则 ( O ) 为正值,表示车辆向右偏移。
    from ugot import ugot
    from camera import UCamera
    import time
    got = ugot.UGOT()
    got.initialize('10.10.7.235')
    got.load_models(['line_recognition'])
    got.set_track_recognition_line(1)

camera = UCamera(got)
camera.open()
'''
type(int): 双轨线类型(1 直线, 2 路口, 0 无线) 2十字路口?
'''
while camera.running:
track_info = got.get_double_track_total_info()
print('-------:', track_info)
got.screen_print_text_newline(track_info, 2)

# got.screen_print_text_newline('1 直线, 2 路口, 0 无线', 1)
# time.sleep(1)
camera.draw(track_info)
目录
相关文章
|
5月前
在电机控制中,位置环为什么常用P,PD。而不用PI?
在电机控制中,位置环为什么常用P,PD。而不用PI?
44 1
|
7月前
|
数据安全/隐私保护
加速度、速度、位移互相转换,加速度转位移matlab程序,任意数据类型
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
时钟(分针和时针的重合问题)
时钟(分针和时针的重合问题)
95 1
|
传感器 数据采集 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
183 0
封装一个函数,山峰 高度不固定、纸张厚度不固定,计算折叠几次后超过山峰
封装一个函数,山峰 高度不固定、纸张厚度不固定,计算折叠几次后超过山峰
57 0
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
|
算法
MOTOROLA MVME162-520A 限值对应于偏移一个常数的参考信号
MOTOROLA MVME162-520A 限值对应于偏移一个常数的参考信号
107 0
MOTOROLA MVME162-520A 限值对应于偏移一个常数的参考信号
labview数值型数据实验输入显示时间滑动杆旋钮仪表相加相减相乘滚动条
LabVIEW是一种程序开发环境,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
138 0
【蓝桥杯嵌入式】STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系
【蓝桥杯嵌入式】STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系
1251 0
每日三题-最大矩形、比特位计数、回文子串
每日三题-最大矩形、比特位计数、回文子串
82 0
每日三题-最大矩形、比特位计数、回文子串