自动驾驶---什么是Frenet坐标系?

2024-08-31 14:36
文章标签 自动 驾驶 坐标系 frenet

本文主要是介绍自动驾驶---什么是Frenet坐标系?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 背景

        为什么提出Frenet坐标系?Frenet坐标系的提出主要是为了解决自动驾驶系统在路径规划的问题,它基于以下几个原因:

  1. 符合人类的驾驶习惯: 人类驾驶员在驾驶过程中,通常不会关心自己距离起点的横向和纵向距离,而是会关注车辆相对于道路的相对位置,比如与车道线的距离。Frenet坐标系提供了一种与人类驾驶习惯相符的描述方式,使得自动驾驶系统能够更好地模拟人类的驾驶行为。

  2. 简化路径规划问题: 在笛卡尔坐标系中,路径规划需要考虑车辆在平面上的x和y坐标,这对于复杂的道路环境和曲线形的路径来说较为复杂。而Frenet坐标系是基于曲线的几何特性,将路径规划问题转化为沿曲线的纵向位置(弧长s)和横向偏移(偏移量d),这使得规划过程更加直观和简化。

  3. 便于描述车辆运动: Frenet坐标系能够自然地描述车辆在曲线形道路上的运动,如车辆在曲线车道上的转向和定位。通过曲率和挠率的参数化,可以更容易地处理车辆在曲线上的运动学和动力学特性。

  4. 适应不同的道路形状: 道路可以是直线也可以是曲线,Frenet坐标系可以适应任何形状的参考线。这使得自动驾驶系统可以处理各种道路条件,包括高速公路、城市道路和乡村小路等。

  5. 提供有效的避障和车道变换策略: 在自动驾驶中,避障和车道变换是关键功能。Frenet坐标系提供了一种描述车辆与障碍物相对位置的有效方法,使得系统能够规划出避开障碍物或进行车道变换的最佳路径。

  6. 减少计算复杂性: 由于Frenet坐标系直接基于曲线的几何属性,因此在计算曲率、挠率等参数时,可以减少计算量,提高系统的实时性。

        Frenet坐标系的提出是为了使自动驾驶系统在处理复杂的道路条件和车辆运动时更加高效、准确,同时与人类驾驶员的驾驶习惯相吻合。这种坐标系在自动驾驶领域得到了广泛应用,并成为了路径规划算法中的一个重要组成部分。

2 Frenet坐标系介绍

        Frenet坐标系是一种在几何学和物理学中常用的坐标系,它是由法国数学家Jean Frédéric Frenet在19世纪提出的,因此在数学和工程领域被广泛使用,特别是在轨迹规划和机器人控制中。以下是关于Frenet坐标系的详细介绍:

(1)定义

  • Frenet坐标系基于一个参考线建立,该参考线可以是任意曲线,但在自动驾驶运动规划中通常定义为道路的中心线。
  • 使用参考线的切线向量和法线向量建立一个直角坐标系,即Frenet坐标系。

(2)组成

  • 曲线(法线):Frenet坐标系中的曲线通常被称为“法线”,它是坐标系的基础。
  • 正交平面:与法线垂直的两个平面构成正交平面,用于描述物体在曲线上的运动。

(3)坐标轴

  • s轴(纵轴):纵坐标s值指的是参考线上的原点(车辆质心到参考线的投影点)与起点之间曲线的长度,即车辆在道路上的纵向行驶距离。
  • d轴(横轴):横坐标d值指的是原点与车辆质心之间的距离,即车辆偏离道路中心线的距离。

(4)特性

  1. 移动性:由于车辆质心随时间不断变化,Frenet坐标系的原点也在不断变换,因此它是一个移动坐标系。
  2. 直观性:在Frenet坐标系中,横轴和纵轴相互垂直且原点所在参考线与车道中心线平行,容易确定车辆偏离车道中心线的距离以及车辆沿车道中心线的行驶距离。
  3. 简化问题:相比于笛卡尔坐标系,Frenet坐标系可以简化运动规划问题。在Frenet坐标系中,车辆的二维运动问题被解耦成两个一维运动问题,即纵向运动和横向运动,这使得问题更容易求解。

(5)应用

  • Frenet坐标系在自动驾驶、飞行器导航与控制、机器人轨迹规划等领域有广泛应用。
  • 它可以用于分析物体在曲线上运动的物理学问题,如车辆在曲道上的运动等。

(6)其他概念

  • 曲率半径:曲线的曲率半径是曲线的最小弯曲半径。
  • 弯角:曲线的弯角是指曲线从一条直线转向到另一条直线所需要的角度。

3 总结

        Frenet坐标系是一种基于参考线的移动坐标系,用于解决在轨迹规划和机器人控制中遇到的问题。它通过定义s轴和d轴来直观描述物体在曲线上的位置和姿态,并简化运动规划问题。由于其直观性和简化性,Frenet坐标系在多个领域得到广泛应用。

这篇关于自动驾驶---什么是Frenet坐标系?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124181

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理

王建强, 郑讯佳, 黄荷叶. 驾驶人驾驶决策机制遵循最小作用量原理[J]. 中国公路学报, 2020, v.33;No.200(04):159-172. 观点: 为提升智能汽车的自主决策能力,使其能够学习人的决策智慧以适应复杂多变的道路交通环境,需要揭示驾驶人决策机制。 依据: 物理学中常用最小作用量原理解释自然界(包括物理和生物行为)极值现象。同时,最小作用量原理还用于解释蚂蚁在觅

在 Qt Creator 中,输入 /** 并按下Enter可以自动生成 Doxygen 风格的注释

在 Qt Creator 中,当你输入 /** 时,确实会自动补全标准的 Doxygen 风格注释。这是因为 Qt Creator 支持 Doxygen 以及类似的文档注释风格,并且提供了代码自动补全功能。 以下是如何在 Qt Creator 中使用和显示这些注释标记的步骤: 1. 自动补全 Doxygen 风格注释 在 Qt Creator 中,你可以这样操作: 在你的代码中,将光标放在

Jenkins自动构建部署项目

1. 楔子 在实际开发中,经常需要编译、静态代码检查、自动化测试、打包、部署、启动等一连串重复机械的动作,浪费时间、而且容易出错,而Jenkins就是专门Continuous integration(CI)/ Continuous Deploy(CD)开源工具,本文简单介绍Jenkins的使用。 在线无安装免费试用Jenkins:http://www.jenkins.org.cn/test

【Spring Boot】 SpringBoot自动装配-Condition

目录 一、前言二、 定义2.1 @Conditional2.2 Condition2.2.1 ConditionContext 三、 使用说明3.1 创建项目3.1.1 导入依赖3.1.2 添加配置信息3.1.3 创建User类3.1.4 创建条件实现类3.1.5 修改启动类 3.2 测试3.2.1 当user.enable=false3.2.2 当user.enable=true 3.3

最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)

文章目录 一、自动配置概念二、半自动配置(误~🙏🙏)三、源码分析1、验证DispatcherServlet的自动配置2、源码分析入口@SpringBootApplication3、@SpringBootConfiguration的@Configuration4、@EnableAutoConfiguration的@AutoConfigurationPackage和@Import5、Auto