碰撞检测学习笔记

目录

SUMO 模拟碰撞

LimSim++

pygame模拟碰撞检测


SUMO 模拟碰撞

LimSim++

多模态大语言模型(M)LLM的出现为人工智能开辟了新的途径,特别是提供增强的理解和推理能力,为自动驾驶开辟了新途径。本文介绍LimSim++,LimSim的一个扩展版本,旨在将(M)LLM应用于自动驾驶。LimSim++克服了现有模拟平台的局限性,解决了对长期闭环基础设施的需求,支持自动驾驶中的持续学习和改进的泛化能力。该平台提供了持续时间更长的多场景模拟,为LLM驱动的车辆提供了关键信息。用户可以参与提示工程模型评估框架增强,使LimSim++成为研究和实践的通用工具。本文还介绍了一个基线(M)LLM驱动的框架,在不同场景下的定量实验进行系统验证。

LimSim++提供了一个包含道路拓扑、动态交通流、导航、交通控制和其他基本信息的闭环系统。提示是(M)LLM支持的智体系统基础,它包含通过图像或文本描述呈现的实时场景信息。LLM支持的智体系统具有信息处理、工具使用、策略制定和自我评估等功能。

pygame模拟碰撞检测

import pygame
import sys
import math

# 初始化 Pygame
pygame.init()

# 设置窗口参数
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("碰撞预警检测示例")

# 颜色定义
WHITE = (255, 255, 255)
BLUE = (0, 0, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
YELLOW = (255, 255, 0)

# 创建两个矩形对象
rect1 = pygame.Rect(300, 300, 60, 60)
rect2 = pygame.Rect(500, 200, 80, 80)

# 设置初始速度和颜色
speed1 = [3, 3]
speed2 = [-2, 4]
color1 = BLUE
color2 = GREEN

# 预警参数
WARNING_DISTANCE = 80  # 预警触发距离(像素)

# 主循环
clock = pygame.time.Clock()
running = True

while running:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 移动矩形
    rect1.move_ip(speed1)
    rect2.move_ip(speed2)

    # 边界碰撞检测(反弹)
    # 矩形1
    if rect1.left < 0 or rect1.right > WIDTH:
        speed1[0] = -speed1[0]
    if rect1.top < 0 or rect1.bottom > HEIGHT:
        speed1[1] = -speed1[1]

    # 矩形2
    if rect2.left < 0 or rect2.right > WIDTH:
        speed2[0] = -speed2[0]
    if rect2.top < 0 or rect2.bottom > HEIGHT:
        speed2[1] = -speed2[1]

    # 碰撞检测逻辑
    collision = rect1.colliderect(rect2)

    if collision:
        # 实际碰撞处理
        color1 = RED
        color2 = RED
        # 简单反弹处理
        speed1[0] = -speed1[0]
        speed1[1] = -speed1[1]
        speed2[0] = -speed2[0]
        speed2[1] = -speed2[1]
    else:
        # 计算中心点距离
        dx = rect1.centerx - rect2.centerx
        dy = rect1.centery - rect2.centery
        distance = math.hypot(dx, dy)

        # 碰撞预警检测
        if distance < WARNING_DISTANCE:
            color1 = YELLOW
            color2 = YELLOW
        else:
            color1 = BLUE
            color2 = GREEN

    # 绘制画面
    screen.fill(WHITE)
    pygame.draw.rect(screen, color1, rect1)
    pygame.draw.rect(screen, color2, rect2)

    # 可选:绘制预警区域
    pygame.draw.rect(screen, YELLOW, rect1.inflate(WARNING_DISTANCE, WARNING_DISTANCE), 1)
    pygame.draw.rect(screen, YELLOW, rect2.inflate(WARNING_DISTANCE, WARNING_DISTANCE), 1)

    # 更新显示
    pygame.display.flip()

    # 控制帧率
    clock.tick(60)

# 退出程序
pygame.quit()
sys.exit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值