- 博客(25)
- 资源 (8)
- 收藏
- 关注
原创 C++教程(三):c++常用的配置文件类型
不同的配置文件格式在 C++ 项目中的应用各有优缺点,选择时应考虑以下因素:INI 文件:简单,适用于小型项目和配置需求较少的应用。JSON 文件:灵活,适用于需要复杂数据结构的项目。YAML 文件:简洁易读,适用于配置文件较多、易读性要求高的项目。XML 文件:功能强大,适用于需要复杂描述和自描述性的场景。TOML 文件:简洁且支持复杂数据,适合需要人类友好且功能强大的配置场景。二进制配置文件:适合高效、紧凑存储和传输需求的场景。
2024-09-28 14:52:02 1502
原创 自动驾驶规划算法(一):A*算法原理和代码(c++与python)
A*算法(A-star algorithm)诞生于1968年,由彼得·哈特(Peter Hart)、尼尔森·尼尔森(Nils Nilsson)和伯特·拉波特(Bertram Raphael)三位计算机科学家提出。它的设计初衷是为了解决路径搜索问题,尤其是通过启发式函数的引导,使得算法能够高效地在图(graph)或网格(grid)结构中找到最优路径。A*算法是人工智能与路径搜索领域中最为经典的图搜索算法之一,因其在许多实际应用中的高效性和灵活性广泛受到关注。
2024-09-26 08:56:15 1788
原创 最优化理论与自动驾驶(二-补充):求解算法(梯度下降法、牛顿法、高斯牛顿法以及LM法,C++代码)
在之前的章节里面我们展示了最优化理论的基础求解算法,包括高斯-牛顿法(Gauss-Newton Method)、梯度下降法(Gradient Descent Method)、牛顿法(Newton's Method)和勒文贝格-马夸尔特法(Levenberg-Marquardt Method, LM方法)法。在实际工程应用中,我们一般采用C++进行开发,所以本文补充了上述求解方法的C++代码。在实际应用中,我们既可以自己进行简单的求解,也可以采用第三方库进行求解。
2024-09-24 12:03:30 929
原创 C++教程(五):C++高手养成之代码规范,如何写出规范优雅的程序
C++代码规范旨在提高代码的可读性、可维护性和一致性,同时减少潜在的错误和代码异常。以下是一些常见的C++代码规范。
2024-09-22 22:24:17 668
原创 C++教程:标准模板库的方法和函数,让你的计算简洁而高效(附所有函数介绍和代码示例)
C++ 的 头文件中提供了非常丰富的通用算法,这些算法几乎覆盖了大部分的常见操作,如查找、排序、复制、修改等。掌握这些算法可以帮助你编写更加简洁、高效和可维护的代码,并且它们经过高度优化,通常比手写的等价代码更高效。
2024-09-21 09:28:34 940
原创 python教程(三):python高级数据结构大全(附代码)
Python 中的高级数据结构是基于标准数据结构的扩展,提供了更高效的操作和更复杂的功能。这些数据结构通常用于解决特定的编程问题或优化性能。下面是一些常见的高级数据结构及其应用。
2024-09-20 08:38:52 1039
原创 C++教程(二):C++设计模式之工厂模式详细解析以及工厂模板类实现
在 C++ 中,工厂模式(Factory Pattern) 是一种创建型设计模式,它通过定义一个接口来创建对象,而不是直接实例化具体的类。这种模式的主要目的是将对象的创建过程封装起来,以便在不修改客户端代码的情况下轻松扩展新类型的对象。
2024-09-19 09:00:55 1037
原创 最优化理论与自动驾驶(十一):基于iLQR的自动驾驶轨迹跟踪算法(c++和python版本)
之前的章节我们介绍过,iLQR(迭代线性二次调节器)是一种用于求解非线性系统最优控制最优控制最优控制和规划问题的算法。本章节介绍采用iLQR算法对设定的自动驾驶轨迹进行跟踪,与第十章节纯跟踪算法采用同样跟踪轨迹,同时,我们仅对控制量的上下边界进行约束,使用简单的投影法进行约束(更详细的约束参考第九章 CILQR约束条件下的ILQR求解)。其实,iLQR可以直接进行轨迹规划,主要做法是将障碍物或者边界约束通过增广拉格朗日法将原始问题的约束条件通过拉格朗日乘子和惩罚项结合到代价函数中。
2024-09-18 11:52:43 3683
原创 最优化理论与自动驾驶(十):纯跟踪算法原理、公式及代码演示
纯跟踪算法(Pure Pursuit Algorithm)是一种用于路径跟踪的几何控制算法,广泛应用于自动驾驶、机器人导航等领域。其基本思想是通过选择预定路径上的目标点(预瞄点),并控制转向角,使车辆不断逼近并跟随该目标点,从而达到路径跟踪的效果。
2024-09-17 18:20:32 2496
原创 python教程(二):python数据结构大全(附代码)
Python 中数据结构的重要性不言而喻,它们是构建高效、可维护代码的基础。数据结构决定了如何存储、组织和操作数据。理解和使用合适的数据结构能够极大地提升程序的性能、简洁性以及代码的可读性。Python 的基础数据结构有 4 种,分别是 列表 (list)、元组 (tuple)、集合 (set) 和 字典 (dictionary),它们都是 Python 内置的,并不需要额外导入模块。基础数据结构广泛用于存储和操作数据,支持常见的增删改查等操作。
2024-09-16 15:57:01 2000
原创 ros2教程(一):使用python和C++发布摄像头原始图像和压缩图像
在ROS 2中,python可以通过使用rclpy库来发布压缩图像和原始图像,C++发布原始图像和压缩图像可以通过image_transport库来实现。
2024-09-15 22:49:29 1056
原创 C++教程(一):超详细的C++矩阵操作和运算(附实例代码,与python对比)
在之前的章节中,我们详细介绍了python中numpy的矩阵操作。但在自动驾驶开发中,我们一般采用C++进行功能开发,因此C++矩阵运算就是自动驾驶开发工程师不可或缺的能力。在C++中没有直接进行矩阵操作的功能函数,需要采用数组或者vector等容器实现,或者引用第三方库,例如Eigen(一个高效的C++模板库,用于矩阵和向量的线性代数运算)、Armadillo(提供简洁语法和高效的矩阵操作,支持线性代数和统计学运算)、Boost uBLAS(Boost库中的矩阵运算模块)。
2024-09-14 11:51:04 3845
原创 Linux下vscode配置C++和python编译调试环境
Visual Studio Code (简称 VSCode) 是由微软开发的一款免费、开源、跨平台的代码编辑器。它支持 Windows、macOS 和 Linux 操作系统,并且内置对多种编程语言的支持,包括但不限于 C/C++、Python、JavaScript、TypeScript、Java 和 Go 等。VSCode 主要用于编写、调试和运行代码,并且提供了丰富的扩展支持。
2024-09-13 23:32:20 1542
原创 人工智能辅助汽车造型设计
随着科技的不断进步,人工智能(AI)在各个领域的应用越来越广泛,汽车设计行业也不例外。尤其在车辆外观造型设计中,AI正在成为设计师的重要助手,通过提供强大的工具和独特的创意方式,革新了传统设计流程。
2024-09-13 15:47:55 1203
原创 OpenAI重磅更新:发布目前最强推理模型ChatGPT-o1,新鲜测试出炉,草莓快要成熟了
总的来说,OpenAI 的o1-preview和o1-mini模型标志着人工智能推理能力的新阶段。无论是在科学、技术领域,还是在日常复杂任务中,o1 都展现了前所未有的强大性能。对于广大用户而言,o1 系列的推出意味着可以更直接地体验到先进 AI 技术带来的变革性力量。未来,OpenAI 能否凭借 o1 继续引领大模型领域的发展,甚至将人们向通用人工智能的梦想更进一步?让我们拭目以待。
2024-09-13 14:39:20 2708
原创 python教程(一):超详细的numpy矩阵操作和运算(附实例代码)
在NumPy中,张量是指具有多维数据结构的数组,通常扩展自二维矩阵。张量可以是 1D(向量)、2D(矩阵)、3D(例如彩色图像的表示)甚至是更高维度的数组。NumPy提供了多种方法来操作和计算张量,广泛应用于机器学习、深度学习、科学计算等领域。在NumPy中,张量本质上就是多维数组,使用np.array()函数可以创建不同维度的张量。
2024-09-12 17:37:35 7234
原创 最优化理论与自动驾驶(一):概述
最优化理论是数学与工程学中用于寻找最优解的分支,它研究如何在给定约束条件下最大化或最小化某个目标函数。其核心思想是通过分析变量的取值来找出最优的决策方案。最优化问题可以是线性的(线性规划)或非线性的(非线性规划),可以有约束(约束优化)或无约束(无约束优化)。在自动驾驶中,最优化理论主要解决路径规划、运动控制、感知与决策、鲁棒性优化等问题。
2024-09-11 20:46:55 1770
原创 最优化理论与自动驾驶(九):CILQR约束条件下的ILQR求解
引入违反控制输入或状态约束的罚项,例如对于控制输入 uk\mathbf{u}_kuk 的上下限约束,可以定义一个惩罚项:其中是惩罚参数,用来调节约束的严格性。
2024-09-10 15:04:29 1850
原创 最优化理论与自动驾驶(六):LQG和iLQG原理、公式及代码演示
在实际工程应用中,噪声是系统无法避免的因素,主要包括过程噪声和观测噪声。在自动控制、机器人、自主驾驶等领域,噪声的影响尤其显著。为了提高控制系统的鲁棒性和性能,像LQG和iLQG这样的算法被广泛应用。其主要思想是在LQR和ILQR的状态方程中增加高斯噪声,LQG 是结合LQR和卡尔曼滤波器减少噪声干扰,ILQG通过在Q-函数对状态的二阶导数中增加噪声的协方差矩阵来更新控制律,使得系统能够在噪声环境下得到更为鲁棒的控制方案。
2024-09-09 22:35:48 1261 1
原创 最优化理论与自动驾驶(八):ILQR正则化和line search
(Line Search)是一种常见的技巧,用于在更新控制序列时进一步提高算法的数值稳定性和收敛性。在 iLQR 的反向传播阶段,通过局部线性化的系统模型和二次近似的目标函数来计算新的控制增量。然而,由于近似并不精确,直接应用所得到的控制更新可能会导致目标函数值的增加,尤其是当系统具有高度非线性时。线搜索的核心思想是在一条给定的方向上缩小步长,直到找到一个合适的步长,使得目标函数有所改善。收敛性: 适当的正则化能够提高 DDP 收敛的稳定性,但过大的正则化参数。,继续计算目标函数值,直到找到合适的步长。
2024-09-08 14:04:43 1005
原创 最优化理论与自动驾驶(五):DDP原理、公式及代码演示
DDP的问题定义和ILQR是一致的,都是建立离散时间系统的状态方程和代价函数,目标是找到控制序列最小化成本函数。Q函数的定义为:将1. 对状态通过链式法则对2. 对控制输入的一阶导数4. 对控制的二阶导数5. 对状态和控制的混合二阶导数。
2024-09-08 08:27:59 1385
原创 最优化理论与自动驾驶(四):iLQR原理、公式及代码演示
我们考虑一个离散时间的动态系统,其状态方程为:其中,是系统在时间步k的状态,是控制输入,描述系统的动态方程。我们的目标是找到控制序列其中,是阶段成本函数,是终端成本。由于LQR算法要求系统的状态方程为线性状态方程,成本函数为二次型,因此iLQR是通过牛顿高斯方法进行迭代逼近最优解。为了方便优化和递推,我们引入值函数,它表示从时刻k开始,给定当前状态,剩余时间内的最小代价。其定义如下:值函数依赖于当前状态,并反映了从当前状态到终端状态所需支付的最小累积代价。
2024-09-07 11:13:20 2322
原创 最优化理论与自动驾驶(三):LQR原理、公式及代码演示
LQR 是基于线性系统和二次型代价函数的最优控制方法,在实际工程应用中,我们一般采用离散时间系统的LQR设计,其目标是通过设计反馈控制律,使系统在离散时间步长内稳定运行,最小化某个二次型代价函数。给定一个离散时间系统,其状态和控制输入通过以下方程表示:是时刻k的系统状态,是时刻k的控制输入,是状态转移矩阵,是输入矩阵。系统描述的物理意义:系统状态通过矩阵A演变到下一时刻,同时控制输入通过矩阵B影响系统的状态。
2024-09-06 17:29:57 1902
原创 最优化理论与自动驾驶(七):iLQR迭代终止判断条件
iLQR 的终止条件可以根据实际需求设置,最常见的是控制输入变化量或成本函数的变化量来判断是否收敛。合理选择阈值和最大迭代次数可以在保证收敛的同时避免过度计算。
2024-09-06 11:33:32 739
原创 最优化理论与自动驾驶(二):求解算法
本文介绍了高斯-牛顿法(Gauss-Newton Method)、梯度下降法(Gradient Descent Method)、牛顿法(Newton's Method)和勒文贝格-马夸尔特法(Levenberg-Marquardt Method, LM方法)的应用场景和迭代方法,并通过python和C++展示了四种不同的算法在非线性最小二乘问题的应用,最小二乘函数选择指数衰减函数y=a*exp(bx)。
2024-09-03 15:37:07 1127
汽车行业未来的5大人工智能应用.pdf
2020-03-13
人工智能:汽车产业创新新动力
2020-03-13
人工智能技术与数据科学在汽车产业中的应用
2020-03-12
节能与新能源汽车技术路线图--欧阳明高.pdf
2020-03-12
全球人工智能产业地图
2020-03-12
中国人工智能行业市场前景研究报告.pptx
2020-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人