自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 不同底盘结构的移动机器人产品

1. turtlebot系列2. Racecar3. 大疆移动机器人

2022-04-22 15:01:05 272

转载 C++11 thread_local关键字

thread_local 是 C++11 为线程安全引进的变量声明符。thread_local 简介thread_local 是一个存储器指定符。所谓存储器指定符,其作用类似命名空间,指定了变量名的存储期以及链接方式。同类型的关键字还有:auto:自动存储期;register:自动存储期,提示编译器将此变量置于寄存器中;static:静态或线程存储期,同时提示是内部链接;extern:静态或线程存储期,同时提示是外部链接;thread_local:线程存储期;mutable:不影响存储期

2021-10-20 16:23:40 435

转载 一致性哈希的通俗理解

在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规律的

2021-10-07 22:26:37 159

原创 Linux下使用vscode和cmake进行编译调试

Linux下使用vscode和cmake进行编译调试1. 远程连接使用vscode下的remote-ssh插件远程连接到服务器,编写好代码之后,目录如下:2. 编写CMakeListscmake_minimum_required(VERSION 2.0)project(primo)#启用 Makefile 构建的冗长输出set(CMAKE_VERBOSE_MAKEFILE ON)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

2021-09-26 22:40:34 805

原创 现代操作系统学习第2章 — 进程与线程

现代操作系统学习第2章2.1 进程进程模型进程创建与终止合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入2.1 进程伪并行:严格的说,在一瞬间,CPU只能运行一个进程,但是在多道程序设计系统中,每个进程各运行几十或几百毫秒,那一秒内CPU

2020-09-30 20:18:48 175

原创 K-D树的c++代码实现

先贴上代码,具体原理后面再逐步完善kdtree.h:#ifndef KDTREE_H_#define KDTREE_H_#include<cmath>#include<algorithm>#include<stack>#include<vector>#include<iostream>template<typename T>class KdTree{ //定义节点结构 //----------

2020-08-12 15:15:36 382

原创 Coursera自动驾驶课程学习整理1——横向控制之Stanley Controller

Stanley Controller对航向角的控制结合三个需求:1. 减小航向角误差。 2. 减小横向误差。 3. 满足最大转向角限制。 与Pure Pursuit不同的是,Stanley Controller以前轮中心为参考点。如上图所示,第一个部分用于减小航向角误差,第二个部分用于减小横向误差,所以最终的控制律就是将这些结合起来,如下图然后,横向误差容易证明是指数收敛的:最后,一些调整改进,加入一个ksk_sks​,防止低速时可能出现的方向剧烈抖动:Stanley Controller

2020-06-05 15:46:56 3181 2

原创 Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit

自动驾驶横向控制之Pure Pursuit最近从网上找到一套Coursera自动驾驶课程的资料,讲解十分系统详细,我个人比较关注Control和Planning部分的学习,暂时打算随着学习进度进行整理。纵向控制是控制车辆的速度,本课程里面是介绍了PID,这个太常用了,就不说了。横向控制是控制车辆的转向角,我自己对课程里介绍的方法不太熟悉,所以主要关注横向控制部分。运动学模型首先是车辆的运动学模型,这里给出了最常用的自行车模型,关于运动学模型的建立,网上有很多博客和资料,我个人觉得《无人驾驶车辆模型预

2020-06-04 22:47:05 1590 2

原创 ROS kinetic不能加载库问题解决

Could not load library Poco exception = libcoinmumps.so.1: cannot open shared object file: No such file or directory最近用ROS的导航包做一个仿真,需要使用到非线性规划库ipopt,但是在使用过程中出现以下问题首先我能够确定这个库已经安装好了的,安装位置是在/usr/local/lib,但是一直都出现这个错误: 不能加载库,在网上查了很久,有解决方案说在.bashrc文件中加上这一句:

2020-06-03 10:06:31 1555

原创 AVL树c++ 实现

最近在看数据结构,参考了网上的代码,但是在调试时发现一些问题,于是自己修改了一下。AVL树大多数操作和二叉树一样,这里我只涉及到插入和删除操作。1. 节点定义相比较于普通二叉树的节点,多了一个节点高度,需要注意的是,对于空节点,高度默认为0,叶子节点高度为1。节点高度的设置是为了四种旋转操作。节点和树的具体实现如下(使用了类模板):template<class T>class AVLnode{public: AVLnode(const T& el){ i

2020-05-12 22:53:51 551

原创 ROS的nav_msgs里四元数和Yaw角的转换

ROS的nav_msgs里四元数和Yaw角的转换nav_msgs/Path.msg结构std_msgs/Header headergeometry_msgs/PoseStamped[] poses将以上结构展开如下:std_msgs/Header结构uint32 seqtime stampstring frame_idgeometry_msgs/PoseStamped[]结构:...

2020-05-08 15:00:12 4115

空空如也

空空如也

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

TA关注的人

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