自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿辉学长博客

惜岁月匆匆,念少时与你许下的幸福

  • 博客(24)
  • 收藏
  • 关注

原创 QP学习记录

答:针对S/L坐标系下不需要给l-ref_l,其实已经表示的是l,在实际使用中采用了l,kappa,dkappa,来更加符合控制的运动学;6.在EM中使用作为QP的前提,但是在线上代码中,初始解咋给,按照障碍物和boundray的中线?1.目标函数中,L',L",L"'代表平滑,l^2代表什么,和l-ref_l的区别?答:需要将障碍物的约束变成L的边界约束,和是否使用DP无关;答:上述公式中有1/2项,所以需要在权重中*2抵消1/2。4.在H矩阵转成matrix的形式的时候,为啥*2。

2023-03-20 20:08:03 229

原创 车辆到相邻车道的距离

在无人驾驶汽车换道过程中,需要判断车辆是否换到目标车道,需要计算自车到目标车道的距离,为了加速计算通过计算自车到目标车道最近两点所在直线的距离即可; 计算的方式有两种,几何法和向量法 (1)几何法:通过计算自车到目标车道最近两点所在直线的距离;    1.根据两点式直线方程 (y-y2) / (y1-y2) = (x-x2) / (x1-x2),整理之后得:(y1-y2)*x + (x2-x1)*y + x1*y2 - x2*y1 = 0,因此参数 a = y1-y2, b = x2-x1, c =

2021-01-29 10:37:46 929

原创 hybrid A*开发心得

实现细节: (1)open_list分成两部分,取F最小值部分使用std::priority_queue(优先队列),查找部分使用unordered_map,close_list使用unordered_map,进一步来说优先队列在修改值并不刷新堆的结构,最好自己实现优先队列; (2)根据节点到最近障碍物的距离和到最近维诺边的距离,灵活变动下一步拓展子节点的新距离; (3)G值不仅仅是走过的距离,还包括前后节点方向的改变,转向角的改变,转角变化率,是否倒车,到最近障碍物的距离; (4)H值部分分成三部

2021-01-28 16:25:04 1174 1

原创 代码覆盖度工具:gcov和lcov

gcov的使用方法: (1)在Cmakelist中加入覆盖度相关设置:    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") (2)使用Cmake或者Catkin_make进行编译,生成.o和.gcno文件; (3)在bulid/[node_node]/CmakeFiles/test.dir/src中找到.gcno文件; (4)使用gcov -b test.cpp.gcno文件生成.gcov文件,此文

2021-01-28 15:30:59 905

原创 lambda表达式

1.lambda表达式的形式:[捕获列表](参数列表)->返回类型{函数体},其中参数列表和返回类型可省略; 2.lambda表达式中不能有默认参数,即实参与形参相等,必须有函数名,不支持可变参数; 3.lambda表达式中如果没有捕获列表,函数体内只能使用参数列表,捕获列表只可用非static局部变量;  [=]:隐式捕获列表,lambda表达式将拷贝所有使用的来自所在函数实体值;  [&]:显示式捕获列表,使用引用的方式 4.使用值捕获,在创建是拷贝(调用时不复制)。但是创建的拷贝默认不

2021-01-28 13:44:55 207

原创 快速排序

快速排序 #include "iostream" #include "vector" using namespace std; int GetIndex(std::vector<int> &temp_array, int low, int hight) { int temp_single = temp_array.at(low); while(low < hight) { while(low < hight && temp_array.a

2021-01-03 19:03:15 193

原创 配置opencv的CMakeLists.txt

在ROS节点中添加OpenCV,需要在CMakeLists.txt里面加入一下内容: #添加OPENCV库 #指定OpenCV版本,代码如下 #find_package(OpenCV 3.3 REQUIRED) #如果不需要指定OpenCV版本,代码如下 find_package(OpenCV REQUIRED) #添加OpenCV头文件 include_directories(${OpenCV_INCLUDE_DIRS}) #显示OpenCV_INCLUDE_DIRS的值 message(${Op

2020-09-02 16:39:37 3976 2

原创 通俗易懂的Astar算法

(1)main.cpp /********************************************************************** * Copyright (C) 2015-2020 * * NodeName: planning * FileName: main.cpp * * Description: * * History: * guohui zhang 2020/07/23 1.0.0 build this module.

2020-07-23 11:54:23 1908

原创 linux下sublime text 3无法输入中文

更新并将系统升级到最新版本:sudo apt-get update 在本地项目中克隆此目录:git clone https://github.com/lyfeyaj/sublime-text-imfix.git 将你的当前目录更改为sublime-text-imfix:cd sublime-text-imfix 运行下面的脚本:./sublime-imfix 完成,重新打开你的sublime窗口,切换中文输入法,就可以输入中文了 ...

2020-06-15 10:25:13 169

原创 二叉树遍历高级版

前序遍历: (1)递归思路:先树根,然后左子树,最后右子树。 void preorderTraversal(TreeNode* current, vector<int> &temp_result) { if (current == NULL) return; temp_result.push_back(current->val); if (cu...

2020-04-04 17:12:44 522

原创 最大子序列之和

给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释:连续子数组[4,-1,2,1] 的和最大,为6。 1.使用动态规划: 对于该问题,假设以A[i]结尾的最大连续子序列为dp[i],那么存在下列两种情况: 1,最大连续子序列为A[i]本身,即只存...

2020-03-19 01:08:08 331

原创 二分查找升序数组

面试美团的时候遇到二分法查找问题,在这里记录一下: 主要是注意点如下: (1)使用[left,right]双闭合区间来查找,因此while必须是<=,因为只有如此才能在循环结束的时候是left = right + 1,这样保证所有的数据都遍历完; (2)mid = left + (right - left) / 2 比 mid =(left + right) / 2的好处是避免溢出; ...

2020-03-17 23:56:38 1237

原创 工程中函数库建立和调用

1. DLL库建立,新建项目,在win32控制台选择DLL,如下图,完成设置 2. 新建.C文件,添加头文件和函数名(打桩)(注:#pragma warning(disable:4996 是为了屏蔽一些函数检查警告) 3. 在DLL工程中添加_declspec(dllexport)用于导出.lib及.dll文件,并完善添加的函数,如下: 4. 将生成的.dll和.li

2017-05-21 15:28:25 569

原创 visual studio动态库调用

工程开发中调用动态库函数步骤: (1)将.lib,.dll,.h文件拷贝到工程文件夹下面:(64位系统需要在Debug下面也拷贝一份,再不行需要在系统system32下拷贝一份)               (2)在源文件右键,添加现有项,只添加.h文件 结果如下: (3)在项目名字上面右键,选择属性,在链接器-> 输入->附加依赖项->编辑,添加.lib文件,并保存

2017-05-14 18:19:18 894

原创 二级指针作为函数输入的三种实现方式:

#include "stdio.h" #include "stdlib.h" #include "string.h" //打印字符串内容 int PrintStr13(char ** Array, int n) {//第一种和第三种方式 int i = 0; for(i = 0; i < n; i++) { printf("%s\n",Array[i]); }

2017-04-27 19:05:35 584

原创 二叉树层次遍历(单层输出)

每一层都是从左到右,但是每一层输出结束要换行(使用队列) #include "stdio.h" #include "stdlib.h" #define MaxSize 50 /*************定义数据结构************/ typedef struct TreeNode { int data; struct TreeNode *lchild; struc

2017-04-01 21:37:23 875

原创 四则运算实现

(1)使用简单的C语句实现:要求不含左右括号,但是不限制10以内数据 #include #include #include char newstr[100]; int calculate1(char str[],int len) { int i=0,j=0,k=0,l=0,front=0,behind=0; int number1 = 0, number3 = 0,

2017-03-30 20:15:53 633

原创 字符串操作

求字符串长度: #include "stdio.h" #include "stdlib.h" #include "string.h" int mystrlen(char *fstr) { int num = 0; for(;*fstr != '\0';fstr++) { num++; } //while(*fstr != '\0') /

2017-03-22 10:30:29 298

原创 最大堆实现

#include "stdio.h" #include "stdlib.h" typedef struct Heap { //定义堆结构 int *data; int Size; int Capacity; }MaxHeapNode,*MaxHeap; MaxHeap CreatHeap(int Maxsize) { //堆初

2017-03-22 10:08:39 324

原创 堆栈实现

#include "stdio.h" #include "stdlib.h" typedef struct SNode { //定义数据结构 int *data; int top; int Maxsize; }Stack; Stack CreatStack(int Maxsize) { //建立堆栈 //Stac

2017-03-22 10:07:48 463

原创 队列实现

/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" #define MaxSize 20 typedef struct QNode { int *data; int front; int rear; }QueueNode,*Queue; Queue CreatQueue(v

2017-03-22 10:06:35 310

原创 单链表反转

#include "stdio.h" #include "stdlib.h" typedef struct NODE { char data; struct NODE *next; }*node; node creatnode(void) { //数据需要中间变量再送入链表 node head,p,q; char ch; head = p = (node)

2017-03-22 10:04:32 247

原创 二叉树遍历

#include "stdio.h" #include "stdlib.h" /*************定义数据结构************/ typedef struct TreeNode { int data; struct TreeNode *lchild; struct TreeNode *rchild; int Count; }BinTreeNode,*Bi

2017-03-22 10:00:31 287

原创 排序算法大集合

/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" /********************插入排序********************/ void Insert_sort(int a[], int n) { //直接插入排序 int i,j; int temp = 0; for(

2017-02-27 18:09:59 268

空空如也

空空如也

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

TA关注的人

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