自动驾驶
文章平均质量分 88
shao918516
无人驾驶 SLAM 强化学习
展开
-
linux的进程/线程/协程系列2:进程/线程的系统命令
本章分两节:第一节讲解进程相关的系统命令和字段解析,第二节是线程相关的。由于协程一般是调用库,故没有相关的系统命令,后面我们会选择特定成熟的库libgo做对比讲解,这里暂时不提。原创 2022-02-03 00:00:01 · 2593 阅读 · 0 评论 -
linux的进程/线程/协程系列1:进程到协程的演化
本文从批处理时代讲起,由批处理时代的问题引出进程,同时简述现代操作系统的启动,然后由进程问题依次引出线程、线程池、协程。本篇主要是概念讲解,本来打算直接上命令代码,可仔细思考后,认为文字讲解对于理解进程到协程的来龙去脉还是必不可少的,急于操作的同学可以跳到第二篇。原创 2022-02-02 23:46:52 · 1826 阅读 · 0 评论 -
Ubuntu 18.04安装Apollo 6.0:从零开始到启动Demo(超多细节)
最近在以Apollo平台为模板学习无人驾驶系统,在安装Apollo时遇到一些小问题,故写一篇文章作总结,初步介绍Apollo平台,并详解安装过程。原创 2021-08-28 18:55:56 · 12181 阅读 · 23 评论 -
李群与李代数2:李代数求导和李群扰动模型
李群与李代数2:李代数求导和李群扰动模型1. 整体误差最小化引出求导问题2. BCH公式与近似形式3. 李代数求导前言:本篇系列文章参照高翔老师《视觉SLAM十四讲从理论到实践》的第四讲,讲解李群与李代数。写此篇的目的是为了补足《十四讲》中的数学类基础知识,原书内容有点像直译文献,因此笔者根据自己理解,对整体内容重新划分,更改了目录章节,同时扩展了部分内容,有书的同学可以参照阅读,达到事半功倍的效果。1. 整体误差最小化引出求导问题使用李代数的一大动机是进行优化,而在优化过程中导数是非常必要的信息。下原创 2021-07-08 12:59:28 · 876 阅读 · 2 评论 -
四元数插值方法Slerp/Squad/Spicv/Sping知识总结思维导图
四元数插值方法Slerp/Squad/Spicv/Sping知识总结思维导图最近在学习思维导图,闲来无事,就把之前写过的博客,四元数插值方法Slerp、Squad、Spicv和Sping知识点总结整理为思维导图,有了这张图,复习时就不用再看十几万字的文章了。图中三条线图标是对标题的解释,可惜图中无法呈现,建议博友从博客中下载原图。四元数插值方法SlerpSquadSpicvSping知识总结思维导图...原创 2021-06-25 23:17:27 · 936 阅读 · 0 评论 -
李群与李代数1:对应关系及指数/对数映射
在SLAM中,除了表示旋转,我们还要对它进行估计和优化。因为在SLAM中位姿是未知的,而我们需要解决“相机位姿在哪儿最符合观测数据”这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的$R,t$,使得误差最小化。如前所言,旋转矩阵自身是带有约束的,即正交且行列式为1。它们作为优化变量时,会引入额外的约束,使优化变的困难。通过李群—李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。...原创 2021-05-16 16:20:35 · 1802 阅读 · 6 评论 -
三维空间刚体运动4-5:四元数多点离散数值解插值方法:Sping
四元数插值四个方法Slerp、Squad、Spicv和Sping既复杂又很重要,为了详细阐述,故每个方法独立成一篇博文讲解。没有插值的四元数是没有灵魂的,插值的重要性不言而喻。Slerp是经典的两点间一阶连续可导插值方法,Squad方法在Slerp的基础上实现多点间的一阶连续可导,Spicv是多点间连续解析解插值方法,而Sping则是多点间离散数值解插值方法,更适合复杂曲线,此博文也是国内首篇介绍Spicv和Sping的中文资料。原创 2021-04-20 15:25:17 · 969 阅读 · 2 评论 -
三维空间刚体运动4-4:四元数多点连续解析解插值方法:Spicv
四元数插值四个方法Slerp、Squad、Spicv和Sping既复杂又很重要,为了详细阐述,故每个方法独立成一篇博文讲解。没有插值的四元数是没有灵魂的,插值的重要性不言而喻。Slerp是经典的两点间一阶连续可导插值方法,Squad方法在Slerp的基础上实现多点间的一阶连续可导,Spicv是多点间连续解析解插值方法,而Sping则是多点间离散数值解插值方法,更适合复杂曲线,此博文也是国内首篇介绍Spicv和Sping的中文资料。原创 2021-04-04 20:45:29 · 3461 阅读 · 9 评论 -
QtCreator与catkin命令两种方式开发ROS程序(图示加代码)
QtCreator与catkin命令两种方式开发ROS程序一、Qt Creator安装及开发ROS1.安装Qt Creator2.使用Qt Creator开发ROS1.创建工作空间2.创建程序包3.创建节点4.编译及运行编译运行最近学习无为斋主的《机器人ROS开发实践》的ROS编程部分,编译运行遇到了一些麻烦,所以记录下来,以免忘记和方便他人学习。ROS编译运行有两种方式:1、用IDE开发工具...原创 2019-12-13 18:18:38 · 2319 阅读 · 9 评论 -
三维空间刚体运动4-2:四元数线性插值方法:Slerp(详解证明)
四元数插值三个方法Slerp、Squad和Spring既复杂又很重要,为了详细阐述,故每个方法独立成一篇博文讲解,没有插值的四元数是没有灵魂的,插值的重要性不言而喻。Slerp是经典的两点间一阶连续可导插值方法,Squad方法在Slerp的基础上实现多点间的一阶连续可导,而Spring则可以实现多点间的二阶连续可导,更适合复杂的曲线,此系列博文也是国内首篇介绍Spring的中文资料。原创 2020-11-07 16:24:21 · 7671 阅读 · 20 评论 -
三维空间刚体运动4-1:四元数表示旋转(各形式相互转换加代码)
本篇继续参照高翔老师《视觉SLAM十四讲从理论到实践》,讲解三维空间刚体运动。博文将原第三讲分为四部分来讲解:1、旋转矩阵和变换矩阵;2、旋转向量与罗德里格斯公式;3、欧拉角与万向(节)锁;4、四元数表示变换。本文相对于原文会适当精简,同时为便于理解,会加入一些注解和补充知识点,本篇为第四部分:四元数表示变换,另外三部分请参照博主的其他博文。...原创 2020-09-18 07:56:40 · 9605 阅读 · 16 评论 -
深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)
最近在学习《强化学习原理与Python实现》,肖智清著。参考第十二章的自动驾驶案例,写一篇总结,尽量做到简单可行,让有志于自动驾驶的小伙伴可以通过此篇博客可以管中窥豹,初步了解自动驾驶的强化学习训练过程。本篇将自动驾驶问题转化为回合制的强化学习任务,设计以车辆观察图像和运行状态为输入的自动驾驶算法,并在AirSim仿真环境中进行训练和测试。本篇使用带经验回放和目标网络的基于深度Q网络算法设计并实现智能体,对经验回放、目标网络和深度Q学习算法进行简单介绍,并用代码实现。原创 2020-08-26 00:11:18 · 6603 阅读 · 39 评论