【自动驾驶控制算法】 第二讲 三个坐标系与运动学方程

本文是博主对自动驾驶控制算法的学习笔记,主要介绍三个坐标系(右手系)及其在自动驾驶中的应用,以及简化汽车模型的运动学方程。通过分析速度瞬心、质心速度和前轮转角的关系,推导出运动学模型,适用于低速条件下的自动驾驶路径规划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:【自动驾驶控制算法】系列是博主对B站up主:忠厚老实的老王所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考。

B站up主:忠厚老实的老王是一位研究汽车领域,无人驾驶方向及其相关方向的大佬,也算是博主在无人驾驶方向的启蒙老师。所以研究相关领域的朋友推荐去听一听他的视频讲解。



前言

自动驾驶控制算法:PID算法LQR算法MPC算法

PID、LQR算法:百度Apollo使用这两种算法

MPC算法:学术界一般使用MPC算法,其控制效果优于PID和LQR算法,但是计算量太大,只存在于仿真。


控制的前提是路径规划,教程中默认已有路径规划。

在这里插入图片描述

在这里插入图片描述

1. 三个坐标系

本教程一律采用右手系

右手系:当右手的拇指指向 x x x轴时,食指指向 y y y轴,中指指向 z z z轴。
左手系:当左手的拇指指向 x x x轴时,食指指向 y y y轴,中指指向 z z z轴。


一般数学,物理学等都是右手系。
而一般计算机学科,图形,视觉方向是左手系。

自动驾驶又是一个跨学科较大的行业,所以在参考学习自动驾驶的相关文献资料时,一般要先了解作者的学科背景。


三个坐标系:

在这里插入图片描述

2. 运动学方程

(1)、简化汽车模型:

在这里插入图片描述

(2)、建立微分方程:

几何关系——运动学模型(不考虑轮胎变形
牛顿力学——动力学模型(考虑轮胎变形

所以运动学模型只适应于轮胎变形小的情况。如速度比较低,转弯半径比较大,规划的轨迹比较平缓。对于行驶状况比较激烈的情况,误差较大。

在这里插入图片描述
O O O点是速度瞬心。

质心的速度 v c v_{c} vc :可用速度瞬心法来求(理论力学知识点)

在这里插入图片描述

(3)、运动学模型:
X ˙ = v ∗ cos ⁡ ( β + α ) \dot{X} =v*\cos (\beta +\alpha ) X˙=vcos(β+α) Y ˙ = v ∗ sin ⁡ ( β + α ) \dot{Y} =v*\sin (\beta +\alpha ) Y˙=vsin(β+α) φ ˙ = v R \dot{\varphi } =\frac{v}{R} φ˙=Rv
只体现了质心速度 v v v X ˙ \dot{X} X˙ Y ˙ \dot{Y} Y˙ φ ˙ \dot{\varphi } φ˙的影响,没体现前轮转角 δ f \delta _{f} δf X ˙ \dot{X} X˙ Y ˙ \dot{Y} Y˙ φ ˙ \dot{\varphi } φ˙的影响。

因此进一步推导:

在这里插入图片描述

设质心到前轮的距离为 a a a,到后轮的距离为 b b b
使用正弦定理: a sin ⁡ (

03-29
### RAGLLM 的实施与教程 #### 什么是RAG? 检索增强生成(Retrieval-Augmented Generation, RAG)是一种结合了信息检索和自然语言生成的方法,旨在通过从外部数据库中检索相关信息来提高生成质量。这种方法能够有效解决传统大语言模型可能存在的幻觉问题,即生成的内容不符合事实的情况。 #### 实施方法 为了实现RAG,通常需要以下几个组件: - **向量存储**:用于保存文档的嵌入表示,以便快速查找相似内容。 - **检索器**:负责从向量存储中找到与查询最相关的文档片段。 - **生成器**:利用检索到的信息作为上下文输入给LLM,从而生成更精确的回答。 下面是一个简单的Python代码示例展示如何构建基本的RAG流程: ```python from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.llms import OpenAI from langchain.chains import RetrievalQA # 初始化OpenAI Embedding服务 embeddings = OpenAIEmbeddings() # 创建文本分割器实例 text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=0) # 假设我们有一组文档列表叫做texts texts = ["这是一篇关于人工智能的文章...", "..."] docs = text_splitter.create_documents(texts) # 构建Chroma向量库 db = Chroma.from_documents(docs, embeddings) # 定义问答链路 qa_chain = RetrievalQA.from_chain_type( llm=OpenAI(), chain_type="stuff", retriever=db.as_retriever() ) query = "请告诉我有关人工智能的知识" result = qa_chain.run(query) print(result) ``` 此脚本展示了如何使用LangChain框架搭建一个简易版的RAG应用[^2]。 #### 参考资料推荐 对于希望深入研究RAG技术及其实际操作的朋友来说,可以参考以下资源: - GitHub上的[simple-local-rag](https://github.com/kaiji8/simple-local-rag),该项目提供了完整的端到端解决方案,并且经过优化便于理解和部署[^3]。 - Awesome LLM Resources网站收集了大量的高质量链接指向各种主题下的最佳实践案例和技术文章[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值