自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

转载 关于Frenet坐标系内曲率约束

本文摘自于apollo直播公开课,因为车辆存在最小的转弯半径,所以我们要对车辆运动学进行限制。由于转弯半径是基于笛卡尔坐标系的,需要基于Frenet坐标系进行转换。假设: ,车辆朝向与reference line平行。 ,横向二阶导几乎为零。 这样,可以将简化为:这里需要对曲率K进行最大限制,否则转弯半径会过小,导致无法转弯。再把的约束代入,可以得到最终的约束:其中L是指车身的长度。...

2021-07-31 17:08:49 2108

转载 离散点间曲率计算

本文转自知乎计算离散点的曲率(附Python, MATLAB代码)在很多学科中的很多计算任务中都需要用到曲线的曲率(或者曲率半径),numpy库里和matlab build-in里都没有现成的能从离散点来算曲率的方法,网上找到的代码又不敢直接用,毕竟是要高频率用到自己科研上的工具,所以决定结合找到的资料自己推一下,并造出python和matlab的轮子,造福后人公式很简单:曲率:在二维情况下,其标量形式为:所以对于解析情况非常简单,可以直接对于曲线表达式进行解析求导,但是

2021-07-27 10:59:27 2555 2

原创 Apollo算法阅读之基于Sqp的Referenceline全局参考路线优化(含源码)

算法来源于Apollo代码代码源地址,通过序列优化思想,建立无人驾驶车辆参考路径的平滑,利用泰勒展开将曲率约束线性化表达,目标函数中利用弹性带思想,并尽可能缩短参考路径长度且保持与原有参考路径的一致性,具体解析教程可参考博文:算法原理。 目前个人已将代码摘出,源码在本人git:基于Sqp的Referenceline全局参考线路径优化源码,欢迎star。...

2021-03-16 15:20:15 1134 1

转载 交互式多模型 IMM的原理

交互式多模型简单原理交互式多模型 IMM(Interacting Multiple Model)控制算法的主体思想是基于贝叶斯理论而提出的模型间的自动识别与切换:在任意跟踪时刻,通过设置对应目标可能模型数量的模型滤波器来进行实时的机动模型检测,对每一个滤波器设置权重系数和模型更新的概率,最后加权计算得出当前最优估计状态,从而达到模型自适应跟踪的目的。以下是 IMM 算法流程图由图可以看出,一次交互式多模型跟踪的算法主要包含以下四个步骤即输入模型交互、滤波器的滤波、概率模型的更新和新的数据融合.

2020-06-08 14:57:47 13797 11

原创 Apollo 算法阅读之Public Road轨迹规划算法--整体流程

本文主要介绍Apollo内部的public road规划的主要流程,主要是针对lane_follow场景,因为该场景覆盖面更广。以下内容是本人的一些个人阅读代码时的个人理解,欢迎指正。路径规划1.在lane change decider中会进行referline_info的数量查看,如果没有开启换道功能,那么始终只有当前一个referline_info,删去换道路径;否则保留多个referline_info.2.在lane_borrow_decider判断是否当前在借道场景, 如果...

2020-05-26 10:12:29 4068

原创 Apollo 算法阅读之Public Road轨迹规划算法--速度规划

1.Speed_bounds_prior_decider:首先,将障碍物的轨迹映射到s-t graph,随后计算出障碍物的轨迹(prior过程,障碍物在速度方面不存在decision,因此此次计算轨迹是withoutdecision),并将其放置boundaries集合中,随后设置速度最大限制(沿规划好路径),最后,st_graph_data保存boundaries,speed_limit等.2.DP_ST_SPEED_OPTIMIZER:根据上述的boundaries,进行计算启发式速度曲线搜索,得

2020-05-24 23:43:30 4078

原创 障碍物预处理与corridor生成

预处理是建立在SL坐标系上的规划1.首先初始化边界,s_resolution=0.5m, left = max_ , right = min;2.生成fallback情况下的边界,生成左右各half_lane_width - buff(0.5);3.生成pullover情况下的边界;即靠边停车;4.生成regular情况下的边界 4.1 初始化边界; 4.2 根据之前decider信息(左边借道还是右边借道,确定相应的corridor) 4.3 在corridor上,进...

2020-05-21 18:44:10 588

原创 Apollo 算法阅读之Public Road轨迹规划算法--路径规划(含源代码)

本次博文主要介绍apollo 5.0版本内使用的轨迹规划算法----public road,该算法的核心思想是PV解耦,即Path-Velocity的解耦,其主要包含两个过程:1.路径规划,2.速度规划。 路径规划其实已经发展很多年,从早期的机器人到现在的无人驾驶,主要的方法包括 采样法,图搜索法,数值优化法等,具体可以查阅相关文献阅读。本篇文章主要讲述apollo轨迹规划...

2020-04-28 23:25:29 12200 5

原创 APOLLO规划算法Lattice plan算法学习

最近在看百度阿波罗的动态规划算法,当前版本主要使用的是lattice plan,2.0版本使用的是EM plan,本篇文章主要记录Lattice plan算法:Lattice planner程序入口:Status LatticePlanner::PlanOnReferenceLine( const TrajectoryPoint& planning_init_po...

2019-06-17 19:45:56 6403

原创 Carla编译make launch过程中出现UE4_ROOT is not defined

在编译carla过程中出现如下情况:BuildCarlaUE4.sh: ERROR: UE4_ROOT is not defined, or points to a non-existant directory, please set this environment variable.然而我们已经在~/.bashrc中添加了UE4的环境变量,然而仍然出现上述情况,首先需要检查UE4的文件...

2019-06-06 10:00:08 2770 3

原创 Ubuntu16.04+CUDA9.0+CUDNN7.1+Tensorflow-gpu-1.11.0详细安装教程

Ubuntu16.04+CUDA9.0+CUDNN7.1+Tensorflow-gpu-1.11.0安装教程  本文主要介绍在ubuntu16.04系统环境下进行Tensorflow-gpu的安装,本文的安装方式是通过pip 工具进行安装,因此在安装TF前要保证系统有pip工具,假如没有按照如下指令安装:# 1. 更新系统包sudo apt-get updatesudo apt-ge...

2018-12-08 20:45:03 2692

原创 git入门学习

Git学习Git是目前世界上最先进的分布式版本控制系统(没有之一),通过学习git的使用可以很大效率提高我们的工作效率。1991年Linus创立了开源的Linux,(在这儿还需要致敬一下,无论是技术层面还是志向方面)。Git是一种分布式版本控制系统,与分布式版本控制系统相对应的还有集中式版本控制系统,分布式版本控制系统不需要所谓的“中央服务器”,每个人的电脑上都会有一套完整的版本库,所...

2018-11-28 20:18:34 509

转载 Faster R-cnn中的RPN网络详细解释

作者RPN网络前面的g层借用的是ZF网络,网络相对较浅,不过并不影响后期介绍。1、首先,输入图片大小是 224*224*3(这个3是三个通道,也就是RGB三种)2、然后第一层的卷积核维度是 7*7*3*96 (所以大家要认识到卷积核都是4维的,在caffe的矩阵计算中都是这么实现的);3、所以conv1得到的结果是110*110*96 (这个110来自于 (224-7+pad)/2 +1 ...

2018-10-31 18:10:42 543

原创 常用的shell处理txt文本命令集合

以下是部分的shell命令集合希望能对大家有所帮助ls -R  /home/jiaotong404/LH/data/HK_data/JPEGImages/*.jpg > file.txt   //将文件夹下的jpg文件名都输出到file.txtfind /dir -name "*.jpg" > train.txt   //将dir文件夹下jpg的名称写入train.txta...

2018-10-30 23:51:36 2227

原创 SSD训练过程中出现问题总结

    Check failed: 0 == bottom[0]->count() % explicit_count (0 vs. 60) bottom count (209472) must be divisible by the product of the specified dimensions (84)   这意味着test.prototxt内的mbox_conf_reshap...

2018-10-24 16:32:02 2810

原创 python实现批量修改Pascal VOC数据集Annotation

    学习DL过程中,各位同学一定会经历数据的标定工作,本篇按照Pascal VOC数据集格式,通过python实现Annotation文件的批量修改.    举个例子<?xml version="1.0" ?><annotation> <folder>HK</folder> <filename>101.jpg</fil..

2018-10-23 14:43:01 2071 2

原创 深度学习目标检测网络配置参数Slover.protxt详解

    在每次的网络训练当中,网络配置参数的设置会直接影响到我们训练的速度,精确度等,因此如何设置网络超参数极其重要,本文主要对网络配置文件中的一些参数进行详细解读。以下为网络配置文件solver.prototxt。train_net: "models/VGGNet/VOC0712/SSD_300x300/train.prototxt"test_net: "models/VGGNet/VO...

2018-10-13 22:37:12 1576

转载 ImportError: No module named caffe.proto解决方案

在用自己的数据训练基于caffe的SSD模型的时候,我们需要将图片数据转换成lmdb格式,用到的脚本文件是SSD源码里面提供的create_data.sh(具体位置在$CAFFE_ROOT/data/VOC0712/create_data.sh),将它copy一份,取一个自己的名字,比如creat_scenetext_data.sh,然后根据自己的实际情况修改里面的路径。修改完,在执行命令 s...

2018-10-12 12:38:39 1843

原创 电路交换方式与分组交换方式计算题

已知网络速率为1Mb/S,对于每个用户来说,有10%的时间是活跃的,活跃时网速为100kb/s。        对于电路交换方式来说,最多只能支持10位用户接入网络。由于1Mb=1000kb,所以1000/100=10个人        对于分组交换方式来说,则可以支持更多的用户,求问35个用户中,有超过10人同时在线的概率。       下面是Python代码;a = 0.0;...

2018-09-17 21:04:11 6279 1

转载 完结篇 | 吴恩达deeplearning.ai专项课程精炼笔记全部汇总(转载)

从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网:deeplearning.ai关于该深度学习专项课程,本人非常推荐!它对于理解各种算法背后的原理非常有帮助,同时提供了大量的应用场景,涉及图像、语音、自然语言理解等各方面,还提供了一些工具函数、数据集。笔者在学习这5...

2018-09-17 11:21:06 566

原创 Caffe使用,进行分类,finetune训练

    一般来说我们自己需要做的方向,比如在一些特定的领域的识别分类中,我们很难拿到大量的数据。因为像在ImageNet上毕竟是一个千万级的图像数据库,通常我们可能只能拿到几千张或者几万张某一特定领域的图像,比如识别衣服啊、标志啊、生物种类等等。在这种情况下重新训练一个新的网络是比较复杂的,而且参数不好调整,数据量也不够,因此fine-tuning微调就是一个比较理想的选择。    所谓fin...

2018-09-16 19:57:18 683 1

转载 支持向量机c++实现(转载)

    支持向量机c++实现    参考博文地址https://blog.csdn.net/wz2671/article/details/78892902

2018-09-14 11:35:17 2261

转载 SSD(single shot multibox detector)算法及Caffe代码详解(转载)

这篇博客主要介绍SSD算法,该算法是最近一年比较优秀的object detection算法,主要特点在于采用了特征融合。论文:SSD single shot multibox detector 论文链接:https://arxiv.org/abs/1512.02325博客转载自:https://blog.csdn.net/u014380165/article/details/728248...

2018-09-13 19:25:22 326

转载 C++串口编程

CSerialPort 类,头文件: SerialPort.h这里要注意Windows.h#ifndef _SERIAL_H#define _SERIAL_H #include <string>#include <Windows.h>#include <cstddef>#include <cstdlib>#include &l...

2018-09-11 20:05:39 1503

原创 二维及多维数组,指针详解,将TXT文件传入二维数组

1.二维数组  上篇博文讲解了关于一维数组以及指针的运用对一维数组及指针运用还存在疑惑的同学可以查看上篇教程.一维数组及指针运用详解  本篇文章将要介绍二维数组.二维数组与一维数组原理类似.如二维3x3数组的声明定义.例如int data[2][3]={{1,2,3},{4,5,6}}(注意内部的标点符号);必须牢记,数组名被视为其地址.就像一维数组一样,比较难处理的就是如何正确声明指针....

2018-09-09 14:42:05 375

原创 一维数组与指针的关系,将txt文件传入一维数组(详解)

1.一维数组与指针  大多数情况下,C++和C语言一样,也将数组名视为指针.该数组的数组名是数组内第一个元素的地址.例如整形数组 int arrayname[10].其中 arrayname=&arrayname[1].此处需要注意:将地址运算符&作用于数组名时,将返回整个数组的地址,例如&arrayname将返回一个40字节内存块的地址(假设int长4字节).1....

2018-09-09 13:26:55 403

原创 caffe内CHECK_EQ等函数意义解释

个人在学习caffe源码文件时遇到了CHECK_EQ函数,不理解什么含义,经过上下文理解,明白了其中含义。 CHECK_EQ(x,y)<<"x!=y",EQ即equation,意为“等于”,函数判断是否x等于y,当x!=y时,函数打印出x!=y。 CHECK_NE(x,y)<<"x=y",NE即not equation,意为“不等于”,函数判断是否x不等于y...

2018-07-26 21:39:21 10142 3

原创 caffe目标分类和SSD网络目标识别运行c++实例

本文主要说明如何通过C++接口实现ssd多目标识别的演示。 1.前期准备工作  预先安装,编译caffe,具体可以参考https://blog.csdn.net/u012986684/article/details/72469542。此篇文章有详细的安装编译教程。2.编译遇到问题  在编译过程中,总会出现这样或者那样的问题。推荐两篇教程帮助大家解决问题。https://blog.c...

2018-07-21 22:04:57 2557 1

原创 CMakeLists写法总结

个人最近学习了一些关于常见的CMakeLists的一些写法格式,分享给大家。 CMAKE_MINIMUM_REQUIRED(VERSION xxx) 该项表示要求CMAKE的最低版本号. PROJECT(aim1) 此项表示所建立的工程名称 aim1; FIND_PACKAGE(xxx)该命令首先会在模块路径中寻找Find<name>.cmake,这是查...

2018-07-21 21:21:06 10785

path_planning_osqp-master.zip

结合百度apollo 无人驾驶路径规划代码,完成代码移植。

2021-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除