自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (5)
  • 收藏
  • 关注

原创 git rebase使用

想要把fea提交到dev,则需要使用git rebase指令,将dev可能变动的内容合并到fea,再提交mr,把fea提交到dev。

2024-02-19 15:59:59 437

原创 ros2 pub 数组消息

ros2 pub 数组

2024-02-19 15:34:02 427

原创 vim统一展示关键字

【代码】vim统一展示关键字。

2024-02-19 15:24:16 399

原创 使用gdb进行debug调试

【代码】使用gdb进行debug调试。

2024-02-19 15:15:53 387

原创 使用Ubuntu 系统自带工具设置Ubuntu U盘启动盘

哈哈哈,这有点悖论,如果我有Ubuntu系统了,那我干嘛还要设置Ubuntu U盘启动呢。但是可找有Ubuntu系统的电脑帮忙的,因为这个Ubuntu自带工具还是很方便的。

2023-11-10 10:10:22 387

原创 c++ fstream类使用

在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的。

2023-09-05 14:05:51 282

原创 ssh、scp和sshpass使用

ssh 登陆不能在命令行中指定密码,sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

2023-07-26 10:46:39 1226

原创 ubuntu 安装 notepad++,显示中文菜单,并解决中文乱码问题

安装完成之后,输入中文会显示“口口…”,实际上并不是缺少什么windows字库,而是刚安装好的notepad++默认字体是Courier New。setting——>style configurator——>font style——>fontname:选择AR PL UKai CN——>enable global font。notepadqq 是notepad++在Ubuntu下的替代品,优化的比较好,没有那么多设置问题。只需要换成其他的字体即可。"AR PL UKai CN"这个字体是可以支持中文的。

2023-05-04 18:30:57 2523 2

原创 滞回区间作用及伪代码

假设有一个功能,当某个值val超过阈值threshold == 10时起作用。

2022-12-16 10:36:12 1134

原创 std::cout、printf 和 RCLCPP_INFO的对比

typedef 重新定义数据格式后,std::cout是不能正常输出显示的,必须用printf()才能输出uint8_t类型的数据值,需要标明数据的类型。ROS2自带的log输出,分等级,带颜色,输出格式与printf相同,需要标明数据的类型。自带,不用标明数据的类型,可以直接输出,不过只能输出几种基本格式的数据。

2022-09-11 16:16:35 2704

原创 Ubuntu20.04使用Jupyter Notebook

即可在新建的文件里按照python格式写代码,并马上实时运行显示结果。写完代码后,点击“保存”即可。在右上角点击“新建”,选择。在出现的页面中选择文件。可以右键点击文件,选择。会自动打开一个页面。...

2022-08-28 15:19:26 1361

原创 C++多项式拟合

根据拟合出的函数方程系数,测试数据。该多项式基于Eigen库进行求解。根据原始数据进行多项式拟合。

2022-08-28 13:11:57 1921

原创 python的多线程使用

​ Python3中官方才正式提供线程池,而且线程不是开的越多越好,开的多了可能会导致系统的性能更低。**结论:**主线程结束后,无论子线程1,2是否运行完成,都结束线程,不再继续向下运行。当不开启守护进程时,主程序将一直等待子程序全部运行完成才结束。**注意:**如果要设置为守护线程,一定要在开启线程之前(**结论:**主线程等待50个子线程全部执行完成才结束。),主线程执行完自己的任务后,就退出了,此时。,设置子线程为守护线程,实现主程序结束,),将该线程设置为守护线程。​ Python多线程。

2022-08-22 16:39:06 2763 2

原创 C++ 多线程thread

不同平台的多线程API, 比如unix下有pthread,,win下有_beginthreadex()。std::thread是属于C++自带的多线程接口,还有boost::blind也是C++自带的多线程接口boost是C++的测试版本,许多C++的新特性会在这里测试,待时机成熟后悔合并到C++中。boost的C++特性也是稳定的,但不是C++自带,需要编译成库引用。可联结:当线程己运行或可运行、或处于阻塞时是可联结的。注意。...

2022-08-14 17:25:14 501

原创 ROS2 创建python包

有的时候,python中修改了一个数值,重新编译后,可能编译器没有发现修改的地方,有可能不执行修改后的值。所以,为了保险起见,如果比较小的改动,把install和build中相应包的文件删除后再编译,确保编译器一定是按修改后的代码来编译的。如果报错,没有找到该msgs,则到。以上指令为创建一个名为。的python功能包。的开始引用即可,比如。......

2022-07-26 13:29:42 1423

原创 C++分别使用std::chrono和clock()计算时间间隔

c++计算时间间隔

2022-07-18 19:12:55 1891

原创 C++调用Matplotlibcpp进行画图

matplotlibcpp包,是一个利用C++实现的调用Python接口和Matplotlib实现绘图的工具包。github网址。配置python需要的环境3、使用在中添加并且将matplotlibcpp.h 文件添加到头文件目录即可。图像会保存下来,没有显示,需要才会显示图像。注意:这个画图会占用线程,如果想边执行程序边画图,最好开多线程,否则程序会卡在画图这,不会往后执行。...

2022-07-09 13:17:43 8008 3

原创 ubuntu20.04 最小化按钮移动到左侧,点击图标使窗口最小化,配置时区

将“关闭、最小化、最大化”按钮移动到标题栏左侧gsettings set org.gnome.desktop.wm.preferences button-layout 'close,maximize,minimize:'单击桌面任务栏启动器图标使窗口最小化gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'时区配置timedatectl set-local-rtc 1 --adju.

2022-05-24 10:33:24 1143

原创 ROS2安装、配置、编译helloworld及自定义消息

1、安装ROS21.1 添加密钥打开终端,输入以下指令添加密钥:sudo apt install curl gnupg2 -ycurl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -1.2 设置软件源输入以下指令将存储库添加到源列表中:sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros

2022-05-24 09:53:27 1924

原创 求两组数值的微分

如果两组数值点很密集的话,数值微分就是差分。for ii=1:m for jj=1:m dy(ii)=(y(ii+1)-y(ii))/(x(ii+1)-x(ii)); endend求相邻两个点的差分,就可以近似认为是微分。参考

2022-05-12 11:01:14 189

原创 Typora中使用技巧

1、Latex基本语法元素数学公式有两种形式: inline 和 display:inline(行间公式)在正文插入数学公式,用$...$将公式括起来,通常用于段落内表示字符;display(快间公式) :独立排列的公式,用 $$...$$将公式括起来,默认显示在行中间,可用于公式推导。2、 Typora使用latex在Typora插入latex有3种方式:点击“段落”—>“公式块”快捷键Ctrl+Shift+m“$$”+回车注:想要实时显示inline格式,还需要配

2021-12-15 09:58:09 2183

原创 linux查看某个进程内线程的使用情况

top -H -p <pid>或者htop -p <pid>

2021-12-14 19:53:13 873

原创 undefined reference to symbol ‘dlsym@@GLIBC_2.17‘和/libdl.so.2: error adding symbols: DSO missing

1、错误如下:/aarch64-imx8mm-linux-gnu/bin/ld: undefined reference to symbol 'dlsym@@GLIBC_2.17'以及:/aarch64-imx8mm-linux-gnu/sysroot/lib64/libdl.so.2: error adding symbols: DSO missing from command line2、解决办法:在CMakeList.txt 中添加:target_link_libraries(x

2021-12-07 20:15:24 5220

原创 PID 积分分离意义

1、积分本身是用于消除静态误差。但在短期内存在很大偏差的情况下,会造成积分累积,导致控制量超出执行机构可能允许的最大动作范围对应极限控制量,引起超调以及振荡。2、积分分离的原理:当误差值比较大时,取消积分作用,以免由于积分作用使得系统稳定性降低,超调量增大;当被控量接近目标值时(即误差较小时),引入积分控制,以消除净差,提高控制精度。3、简单来说,就是积分作用是用来消除静态误差,但是不能整个状态中都使用。误差较大时,如果还使用积分,就会使控制量很大,产生超调或者振荡。所以这里的分离的意思就是,在误差大的

2021-11-26 17:12:37 4395

原创 win10安装python2.7.10和python3,并在pycharm配置使用

1、安装python3首先安装python3,这部分可以参考博文 如何在win10上同时安装python2和python3主要就是去官网下载安装文件,安装后注意看有没有添加到环境变量,如果没有则手动添加py3到环境变量。2、安装python2.7.102.1 小bug我这个部分有点小问题。上面的博文是安装python2.7.15,然而我使用该安装文件,先是路径无法选择,而且安装好python2.7.15后,其安装文件夹目录中没有Scripts子文件夹,这导致无法使用pip工具。各种倒腾弄Scr

2021-10-20 09:42:27 3223

原创 c++ & python 工厂模式

简单工厂模式简单工厂模式有一个工厂,可以生产多个产品,包含两个接口,一个是产品类的,一个是工厂类的。产品类需要有一个基类,基类中的具体产品实现需要是个纯虚函数,这样一来,产品的子类必须要重写具体的产品实现,实现不同的功能。产品类封装完成后,还需要一个工厂类,工厂类对产品类再次封装,最终实现由一个工厂对象决定创建出哪一种产品类的实例。1、c++版本//简单工厂模式#include<iostream>using namespace std;//产品的基类class Product

2021-09-01 02:05:01 120

原创 传递函数转状态方程

2021-08-25 19:32:01 6585

转载 Proj.NET-地球椭球体、大地基准面及地图投影

地球椭球体(Ellipsoid)众所周知我们的地球表面是一个凸凹不平的表面,而对于地球测量而言,地表是一个无法用数学公式表达的曲面,这样的曲面不能作为测量和制图的基准面。假想一个扁率极小的椭圆,绕大地球体短轴旋转所形成的规则椭球体称之为地球椭球体。地球椭球体表面是一个规则的数学表面,可以用数学公式表达,所以在测量和制图中就用它替代地球的自然表面。因此就有了地球椭球体的概念。地球椭球体有长半径和短半径之分,长半径(a)即赤道半径,短半径(b)即极半径。f=(a-b)/a为椭球体的扁率,表示椭球体的扁平程度

2021-08-05 00:07:46 683

原创 vscode配置C++ Google style 并保存时自动调整

setting.json{ "editor.fontSize": 16, "emmet.excludeLanguages": [ "markdown" ], // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": true, // // 重新设定tabsize "editor.tabSize": 4, // #每次保存的时候自动格式化 "edito

2021-07-25 17:06:45 3128

原创 双系统Ubuntu分区

假设整个空闲空间有200G,主要分4个区:1.给系统分区EFI: 在唯一的一个空闲分区上添加,大小200M,逻辑分区,空间起始位置,用于efi;这个分区必不可少,用于安装ubuntu启动项。(注意与Windows系统中的EFI区分开,)2. swap分区: 中文是"交换空间",充当ubuntu的虚拟内存,一般的大小为电脑物理内存的2倍左右,选中空闲磁盘,点击+,选择逻辑分区、“空间起始位置”,用于后面选择“交换空间”,给它分区16g空间(举例),然后点击确定。3. /: 这是ubuntu 的根目录,

2021-07-18 15:16:12 12302

原创 VMware15.X安装Ubuntu18.04

1、创建虚拟机2、自定义3、安装过程选项配置如下根据自己电脑配置选择,可以配置成2-1-2内存设8G~10G网络连接方式使用默认的即可, 后期有需要可在"虚拟机"->"设置"中更改,这里不多作解释这里最好设成40G,20G的空间还是太小了。4、恭喜你, 创造了一个Ubuntu系统空壳. 接下来,我们要往里面塞些有用的东西.选择Ubuntu系统镜像开启虚拟机进入安装界面,选择语言这里选不选都行安装类型选择->其他选项,自己配置分区

2021-07-18 14:36:17 186 1

原创 数据结构--冒泡排序

#coding:utf-8def BubbleSort(list_): for i in range(len(list_)-1): j = len(list_)-1 while j > 0 : if list_[j] < list_[j-1]: temp = list_[j-1] list_[j-1] = list_[j] list_[

2021-06-23 15:41:43 1576

原创 ros进阶--tf2的使用

在tf2系统中,将包分为tf2和tf2_ros。tf2用来进行坐标旋转,以及tf、msg两种四元素数据结构的变换;tf2_ros负责与ROS数据通信打交道,负责发布tf或订阅tf,即发布者和订阅者是在tf2_ros命名空间下的。1、tf2 (姿态变换和tf格式转换)1.1 四元数的组成一个四元素有4个成员(x,y,z,w)。不绕xyz轴旋转的常用单位四元数为(0,0,0,1)。注意: w 是最后一个,但是一些库像 Eigen 把 w 放在第一的位置。#include <tf2

2021-06-23 15:32:09 4648 1

原创 ros进阶--msg、srv和参数服务器的使用

ROS不是传统意义上的操作系统,不是用于进程管理和调度,而是构建在其它操作系统之上的一种结构化的通讯层。一、自定义msg1.定义msg文件功能包下新建msg目录,添加文件Person.msg。string nameuint16 agefloat64 height2.编辑配置文件package.xmlpackage.xml中添加编译依赖与执行依赖。message_generationbuild_depend>message_runtimeexec_depend>3.CMa

2021-06-23 15:28:33 278

原创 CANBUS通信

2021-06-21 16:46:20 529

原创 Eigen库简单使用

1、基础Eigen中所有向量和矩阵都是Eigen::Matrix,它是一个模板类。它的前三个参数为数据类型、行、列,如声明一个2x3的float矩阵:Matrix<float,2,3> M_23;1.1 矩阵矩阵声明Eigen::Matrix<type,n,m> M_nm;//如果不记得分类的模板,直接用这个总的模板Eigen::Matrix3d M_33;//3x3矩阵,元素类型为doubleEigen::Matrix2d M_22;//2x2矩阵Eigen::

2021-03-24 20:15:49 1505

原创 2D激光雷达运动畸变矫正_base里程计

参考了他人博客,对其中的坐标系转换计算进行更细化的理解,以及归纳了一些函数流程。1、激光雷达运动畸变的原因如上图所示,系1和系2是同一帧激光数据的laser frame。如果雷达扫描频率较低,如10Hz,那么一帧激光点云的第1束和最后1束光束会相差100ms,robot在这段时间内会运动,导致一帧内laser frame已经从系1变化到系2.在同一帧点云里,我们会默认laser frame是不动的,即认为laser扫描到P2时,laser frame是在系1处,但实际上laser frame已经是

2021-03-16 19:58:34 1172 1

原创 ROS与boost:bind()简单解析

1 boost:bind()bind接收的第一个参数必须是一个可调用的对象f,包括函数、函数指针、函数对象和成员函数指针,之后bind最多接受9个参数,参数数量必须与f的参数数量相等,这些参数被传递给f作为形参。绑定完成后,bind会返回一个函数对象ob(类似auto ob = boost::bind(f,...)),它内部保存了f的拷贝,具有operator(),返回值类型被自动推导为f的返回类型。在发生调用时这个函数对象ob将把之前存储的参数转发给f完成调用.如:void func(x,y);

2021-01-19 16:29:39 1172

原创 ROS MessageFilter订阅多个激光雷达话题进行同步处理

0 MessageFilterhttp://wiki.ros.org/message_filtersmessage_filters消息过滤器类似一个消息缓存,当消息到达消息过滤器的时候,可能并不会立即输出,需要满足一定条件才输出,比如有最简单的直接输出消息,还有常用的时间同步器,tf转换等.1 消息的订阅与回调message_filters::Subscriber<std_msgs::UInt32> topic_sub(nh, "topic_name", 1);topic_sub.re

2021-01-19 10:32:30 4237 1

原创 ROS时间戳函数和输出显示

double t = msg->header.stamp.toSec()//把时间戳转化成浮点型格式pringf("time:%f\n",t);//输出显示PS: printf()格式%d 有符号十进制整数%f 浮点数(包括float和double)%s 字符串[.精度]// 如: pringf("time:%.6f\n",t)表示小数点右边6位...

2021-01-18 11:22:13 5112 2

git_flow.odg

自己理解的一个git使用基础的流程,只为存档,有更多认识再继续添加修改

2019-06-19

《概率论与数理统计》浙大版(第四版)

《概率论与数理统计》浙大版(第四版),带书签,可作为教材或参考书

2019-05-08

捷联惯性导航技术(第2版)国防工业出版社.PDF

惯性导航非常出名的一本书,包括数据融合,可以用于车辆定位等领域

2019-04-30

智能车辆定位导航系统及应用_张其善_科学出版社.PDF

车辆定位的书籍,有点模糊,但是可以做一个参考看看吧

2019-04-30

线性状态空间控制系统.PDF中文版_(美)威廉斯二世

非常著名的外国著作,讲的很系统,中文版

2019-04-28

空空如也

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

TA关注的人

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