- 博客(109)
- 资源 (4)
- 收藏
- 关注
原创 vins fusion 学习(更新中)
白色的小点是图像中的特征点对应到空间中的特征点。可以看到rosbag发布了以下数据。图像中红色的是特征点。
2023-10-31 13:41:07 379
原创 imu预积分学习(更新中)
这样如果我们优化之后,第i帧的位姿变了,那么IMU积分的结果(也就是计算出来的相对位姿)不就不准了吗?直白的解决方法是拿优化后的位姿再积分一遍,不久解决了吗,但是这样运算量太大了,而且解决不了根源问题。以上面那个经典图片为例子,IMU可以通过六轴数据,拿到第i帧和第j帧之间的相对位姿,这样不就可以去用来添加约束了吗。需要注意的是,预积分相比暴力重新计算,只是用来减少计算量的,而不能提高精度。这也就是预积分的预的由来。
2023-10-23 22:00:09 436
原创 C++ 什么时候用`.template` 和 `::template`
简单来说,就是你有一个未知类型T**(这个T本身就是模板)**编译环境: gcc/g++ 13.2 -std=c++17。你需要使用T. 或者 T:: 去调用他们,并且要。假设这个T是一个类,这个类里包含了一些。
2023-10-16 01:18:59 394
原创 自己的类支持基于范围的for循环 (深入探索)
观察伪代码,关于迭代器用到的运算符,用到了所以我们需要对迭代器实现以下的内容然后根据c++标准(编译器)规定,我们还需要对对应的类实现begin和end函数,返回对应的迭代器。
2023-10-15 02:42:23 480
原创 C++实现enum反射,类似magic_enum,支持enum classes
有一个首先我们想实现这样打印出来的就是对于这个字符串,我们只需要知道;T N =后面跟的内容是啥就实现了我们的目标但是我们不想像这样把参数写在模板了,而是想用一个函数直接传参也就是想实现但是这样有问题,因为n是变量,无法传入模板。T1T2T3这样子可以保证传入模板的是常量并且可以动态判断了到这里我们其实已经可以实现反射了。但是很显然这个代码有那么一个问题:函数这样只能判断有限个数值,如果有更多数值呢,写无限个if吗。
2023-10-09 16:34:23 417
原创 cartographer 学习
由于cartographer整体分成了两个包其中所有的launch文件会被复制一份到install_isolated的share中。也就是,而修改launch文件是不需要重新编译的。
2023-09-06 14:28:53 462
原创 TEB (Timed Elastic Band)
移植了官方的teb源码,实现了普通优化和多路径优化。移植参考ros源码。无需ros框架即可运行,并使用opencv进行显示。并用 google 的 ceres-solver 替换 g2o 进行单路径优化。主要用来解决局部路径规划问题,和DWA属于同一级别使用到了Ceres/g2o等优化库进行优化,使得输出的曲线更加平滑,通过加入机器人运动学约束,从而生成更加符合机器人动力学特性的轨迹。
2023-09-04 23:41:19 219
原创 侯捷课程笔记(一)(传统c++语法,类内容)
由于很多时候我们写类是在头文件中(声明在头文件),这时候,如果成员函数定义在类内,不也就是把函数放在了头文件吗,编译器比较智能,也就。
2023-09-02 20:10:04 651
原创 使用卡尔曼滤波解算六轴数据
教程链接: https://www.bilibili.com/video/BV1nh411w7b4/核心代码在文件里github首页README中的公式可能会乱码,可以下载后用其它LATEX工具查看(推荐typora查看md文件)
2023-05-16 21:44:36 1334
原创 petalinux axidma驱动使用
注意中断需要连接,注意发送和接收连接顺序dma的设计,注意地址位宽为40bits,设备数也需要改成相应的0x28(40)PS侧没啥需要注意的,有一个PCIE可关可不关,都是可以正常启动的,在led部分不关PCIE会无法启动。
2023-02-21 20:42:23 814
原创 arm开发,使用除法报错undefined reference to `__aeabi_idiv
arm开发,使用除法报错undefined reference to `__aeabi_idiv’makefile里的ld指令里加入。在start.s汇编文件里末尾加入。由于arm里没有除法,就要用库,缺少raise对除0的处理。前面就是你的编译器库路径。这时候应该就能编译通过了。
2022-09-21 11:23:40 578
原创 安装petalinux
参考https://stackoverflow.com/questions/62980416/python-error-when-installing-xilinx-petalinux-on-ubuntu-20-04。可能会有一个python环境怎么都不行,原因是安装程序会通过dpkg检测python安装状态,就算我们安装了,dpkg里status也没有,我们就要手动伪造,文件在。注意,安装版本要和vivado版本和sdk版本都要对应起来,我用的是2019.1。参考手册:UG1144。
2022-08-22 19:46:41 719
原创 shell
shell创立的目的就是把一些常规的命令封号,本质是c语言写的,编译成二进制,一些shell脚本存放在/usr/bin目录中,打开可以看到是二进制文件shell有很多种,有sh,bash,zsh等我们可以把一些命令写到文件当中,下次我们直接执行这个文件方便很多,这种就是shell脚本在windows中是*.bat在linux中一般(约定俗成)是.sh文件结尾shell脚本规则第一行(SheBang):#!/bin/bash第一行使用#!............
2022-08-14 20:13:56 1096
原创 ubuntu 20.04 安装软件踩坑
网站:https://github.com/zq1997/deepin-wine。时发现卡住主要是网络原因,换下手机热点就好了。vscode clion pycharm 等等。官网:https://v2raya.org/按照github教程就可以了。flameshot 截图软件。
2022-08-02 17:13:48 4159
原创 使用python修改注册表 任务栏时间显示秒
注册表使用方法:https://www.bilibili.com/video/BV11Y4y1n7wY代码:感觉这个还是挺好用的,比较遗憾的是win11取消了这个操作,感觉win11很多地方设置很难受,很多很好用的东西都取消了,包括磁铁,时间线啥的,特别是时间线吹爆好吧!...
2022-07-02 00:14:08 263
原创 ORB_SLAM3环境搭建及demo演示
github:https://github.com/UZ-SLAMLab/ORB_SLAM3编译前需要安装相关依赖,相关可以查看README,安装依赖都是可选安装依赖:https://github.com/IntelRealSense/librealsense下载源码后直接执行 文件中也就是一些编译执行指令**注意:**由于编译内容众多,中间很可能会报错,这样建议手动执行build.bash一遍,然后默认的make核心比较少,可以自行改多一点网址:https://projects.asl.ethz.ch
2022-06-21 00:38:15 1430 3
原创 git使用
2 管理项目初始化:会在文件夹生成 文件夹下图为git存储流程常用命令:使用:3 分支常用命令:使用:4 gitee/github绑定本地获取SSH公钥:gitee / github 端填写相应公钥进行测试:成功:首先云端有一个仓库,知道了仓库的ssh地址关联远程仓库: git remote add 关联错了或者需要重新关联可以:查看远程仓库:推送到远程仓库: 可以-f 表示强制覆盖使用:2.6 远程仓库其它常用命令git clone .........
2022-06-21 00:33:56 199
原创 安装EIGEN库
官网:https://eigen.tuxfamily.org/index.php?title=Main_Page源码链接:https://gitlab.com/libeigen/eigen/-/releases/3.4.0解压出来:安装使用方法在文件下:我们按照自己习惯来:安装完成下次在cmake就可以使用了
2022-06-19 01:01:31 736
原创 clion 远程开发
起因为vmware中开发代码太卡了,想用windows使用远程开发以vmware创建的虚拟机为例,系统为ubuntu20.04使用查看ip地址可以尝试连接22端口,如果连接不上需要安装openssh-serverclion设置设置好后可以检查连接,应该是可以直接连接成功的在映射部分选择相应的目录可以勾选自动上传/下载,这个远程开发的本质也就是基于文件系统做的正常情况下就可以进行开发了,但是可能会出现代码补全和识别问题,主要是工具链环境变量没有设置好需要手动设置一下...
2022-06-14 02:05:30 445
原创 学习cmake的使用和CMakeLists.txt
基础目录结构编译方法:1.2 让每个源文件目录都包含一个CMakeLists.txt使用添加子目录其中外部CMakeLists.txt文件内容为src目录下CMakeLists.txt文件内容为其中中的bin指定了编译的输出文件夹,也就是build目录下会生成一个bin目录,目标文件就生成在那里使用命令将内容安装到目录中添加一些版权COPYRIGHT README runhello.sh doc/* 等内容语法:INSTALL(关键字决定内容 内容 目的 路径)其中路径如果使用相对
2022-06-01 11:47:49 723
原创 stm32 使用hal+spi驱动st7789中景园屏幕
stm32 使用hal+spi驱动中景园屏幕文章目录stm32 使用hal+spi驱动中景园屏幕1.开发介绍:2.cubemx配置3.注释事项4.源代码5.使用示例1.开发介绍:硬件是中景园1.47英寸 172*320 屏幕stm32h750是用stm32cubemx+hal库开发环境 vscode+eide编译器 ARMCC6屏幕引脚定义:引脚含义VDD接到3V3GND接地SCL时钟线-接SCLKSDA数据线-接MOSICSS
2022-04-14 19:20:13 5438
原创 clion使用Eigen
clion使用Eigen目录clion使用Eigen1.下载Eigen库2.解压-跳过3.将Eigen文件夹添加到工程4.修改CMakeLists.txt5.main.cpp修改6.编译测试就可以了1.下载Eigen库下载连接:http://eigen.tuxfamily.org/index.php?title=Main_Page#Download2.解压-跳过3.将Eigen文件夹添加到工程4.修改CMakeLists.txt加入include_directories(./Eigen)
2022-04-04 00:55:04 1476 1
原创 linux 路径的知识
linux 路径的知识目录内容含义.当前目录..上级目录/根目录~用户目录路径用cd命令举例子示例作用cd ~回到用户目录cd /回到根目录cd /bin去根目录下的bin文件夹cd ./test去当前路径下的test文件夹,注意不要漏 .cd ~/Desktop去当前用户的桌面cd ..回上一级额外千万注意 / 和 ./ 不是一个东西注意cd ~/Desktop和cd ~/
2022-04-02 01:06:27 830
原创 ros 话题订阅
ros 话题订阅(只发送端)环境搭建就跳过了,假设你已经学会了编译运行了1.发布端代码#include "ros/ros.h"#include "std_msgs/String.h"#include "sstream"int main(int argc, char *argv[]){ /* code */ //set code use chinese setlocale(LC_ALL,""); //ros init ros::init(argc,arg
2022-03-31 12:04:26 638
原创 vscode配合ROS
vscode配合ROS对比非图形化界面可参考链接https://blog.csdn.net/my_id_kt/article/details/123769451文章目录vscode配合ROS1.基础配置2.创建tasks.json3.修改其它配置4.编写文件5.编译6.运行1.基础配置假设已经安装ros插件假设已经使用好了工作区在当前目录终端输入命令:code .使用vscode打开当前目录2.创建tasks.json输入ctrl+shift+b创建一个默认任务将以下内容替换进
2022-03-29 22:57:55 740
原创 linux安装terminator
linux安装terminator1.安装sudo apt install terminator2.使用安装后按ctrl+alt+T发现启用的终端变了右键可以看到不同选项,可以分屏了当有多个终端时,按ALT+方向键可以快速切换终端。
2022-03-29 19:52:13 542
原创 arm-none-eabi 编译器打印不了浮点数
arm-none-eabi 编译器打印不了浮点数平台:gd32f407现象:使用armcc6可以打印,使用arm-none-eabi打印不了浮点数解决方法:链接器选项里里加入:-lc -lrdimon -u _printf_float
2022-03-28 00:35:20 512
原创 arm-none-eabi 报错 undefined reference to `operator new(unsigned int)‘
arm-none-eabi 报错 undefined reference to `operator new(unsigned int)’编写stm32时报错:arm-none-eabi 报错 undefined reference to `operator new(unsigned int)'解决方法:链接器加入:-lstdc++再次编译就可以了
2022-03-27 20:19:23 1767
原创 ROS 最简单地输出helloworld
ROS 最简单地输出helloworld文章目录ROS 最简单地输出helloworld1.构建工作区1.1创建一个文件夹rosTest,文件夹内创建一个src文件夹。1.2进入rosTest文件夹,执行catkin_make1.3进入src目录2.编写文件2.1 编写helloworld.cpp2.2 更改cmake内容3.编译4.运行4.1 开启ros核心4.2 执行代码1.构建工作区1.1创建一个文件夹rosTest,文件夹内创建一个src文件夹。(注意第二个文件夹必须名字要是src)1.2
2022-03-27 11:11:19 682
原创 linux 安装pip
linux 安装pip使用pip可以帮你安装使用python编写的包pip对应python2pip3对应python3下面以安装pip3为例1.首先检查是否安装python3python3 --version2.安装pip3sudo apt install python3-pip3.查看pip3是否安装成功pip3 --version如果是要安装pip(python2),对应位置修改即可。...
2022-03-26 16:32:28 6870 1
原创 linux(ubuntu)安装ROS系统
linux安装ROS系统官方安装教程,建议对比使用http://wiki.ros.org/cn/noetic/Installation/Ubuntu文章目录linux安装ROS系统1.确定软件更新设置2.执行命令(相应准备)2.1 更换源2.2设置密钥2.3更新3.安装ROS4.添加环境变量1.确定软件更新设置勾选画的四项2.执行命令(相应准备)ctrl+alt+T打开终端2.1 更换源将国外更换为国内源,以下任选一个更换中科大源sudo sh -c '. /etc/lsb-re
2022-03-26 12:49:20 4327 2
原创 Vscode C/C++ 按住ctrl 声明定义相互跳转
Vscode C/C++ 按住ctrl 声明定义相互跳转默认情况下声明可以很容易跳转到定义但是定义很多时候按住ctrl不会自动跳转,而是会给你预览窗口选项自己找更改设置如图更改设置即可就可以不会显示预览而直接跳转匹配...
2022-03-21 14:40:04 3994
原创 stm32 设计一个按键驱动,可以检测单机,连击,长按等操作
stm32 设计一个按键驱动,可以检测单机,连击,长按等操作1.期望:设计一个通用驱动代码:不需要外部中断不限制于stm32,可以快速移植到各种单片机可以轻松识别单机,连击,长按不需要堵塞延时,写在主函数也不会堵塞其它代码执行代码尽量多次分层,减少计算量,写在中断也不会占用过长时间使用宏定义,可以快速更改时间间隔软件完美消抖,减少硬件电路设计2.实现效果:3.先来看驱动代码使用宏定义,可以快速更改成想要的时间和方便移植#define ERROR_TOUCH_T 50 //误触
2022-03-15 23:04:44 1378
原创 linux 环境变量
linux 环境变量查看环境变量位置使用echo $PATH查看环境变量路径,用:隔开的是不同的路径使用env命令,可以看到各种环境变量,=号右边就是环境变量的值帮助理解环境变量的小问题有一些执行文件或者我们编译出来的文件如果没加绝对路径或者相对路径,linux默认会到环境变量底下去找,没找到就会报错或者没反应,例如下图直接test没反应使用相对路径./test 就可以了正常执行了绝对路径例如/home/kt/Desktop相对路径例如./gxt不使用上面的 test
2022-03-01 02:45:34 188
LLVM 11.0windows安装包
2022-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人