- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 git常规操作
GIT常用操作仓库# 在当前目录新建一个Git代码库$ git init # 新建一个目录,将其初始化为Git代码库$ git init [project-name] # 下载一个项目和它的整个代码历史$ git clone [url]配置# 显示当前的Git配置$ git config --list # 编辑Git配置文件$ git config -e [--global] # 设置提交代码时的用户信息$ git config [--global] user.name
2021-05-20 16:08:19 478 1
原创 vim常用快捷键
1,vim对后缀名是不敏感的,所以创建一个文本不一定需要使用.txt命令vim lesson22,vim中的光标移动命令是基础的是,再加上一个e是将光标定位再所在单词的结尾处![基础光标移动](https://img-blog.csdnimg.cn/20200614162150220.png#pic_center3,vim中的插入命令,从普通模式下进入插入模式的几种不同插入位置的方法是...
2020-08-17 18:11:23 9809
原创 conda使用一般步骤
Terminal:conda create --name myenv python=3.7如果环境不行的话1.source /opt/anaconda3/bin/activate2.可能是没有源vim ~/.condarc将需要的源装上conda clean -i将原先的源删除3.然后再conda create即可4.需要激活环境 conda activate numpy5.pycharm配置环境的话 File->Setting->Python Interpreter->
2023-10-17 10:55:39 307
原创 Eigen函数查找
坐标系之间的变化 geodetic2enu enu2geodetic四元数的操作定义两个四元数。四元数和一般的数组或者向量在构造上没有区别,只是理解的方法(运算结果)不一样而已p=[1 2 3 4];q=[4,3,2,1];模(Modulus):quatmod(p) % 5.4772范数(Norm):quatnorm(p) 0单位化(Normalize):quatnormalize(p) % 0.1826 0.3651 0.5477 0.7303求逆(Inv
2021-12-12 21:56:53 935
原创 ceres使用方式
Ceres Solver提供了三种求导方式:自动求导、数值求导和解析求导。自动求导方式自动求导是通过定义一个仿函数,然后传给AutoDiffCostFunction,就可以让Ceres自己去求导。所谓仿函数,其实是一个类,只不过这个类的作用像函数,所以叫仿函数。原理就是类实现了operator()函数。自动求导仿函数实现的operator()函数必须是模板函数,因为Ceres内部求导要用到。可直接理解T为double。\\构造仿函数struct AutoCostFunctor { Au
2021-11-22 21:25:20 1391
原创 ROS操作记录debug,参数
1.在寻找到的包下面创建data然后保存数据<param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
2021-10-28 10:27:05 406
原创 gtsam的使用
例子1:3个位姿点和两个地标点Pose2(x,y,theta)Point2(x,y)CMakeListscmake_minimum_required(VERSION 3.17)project(gtsam_test)find_package(Boost COMPONENTS thread filesystem date_time system REQUIRED)FIND_PACKAGE(GTSAM REQUIRED)set(CMAKE_CXX_STANDARD 11)INCLUDE_D
2021-09-22 14:12:51 941
原创 C++传输参数的技巧
参考高博视觉十四讲的做法高翔视觉slam14讲资料调用的顺序1.将参数传入类型BundleParams中进行构造函数BundleParams params(argc,argv);2.构造函数中,会将所有的参数传入到类型CommandArgs中 BundleParams::BundleParams(int argc, char** argv) { arg.param("input", input, "", "file which will be processed"); ar
2021-09-17 14:12:05 419
原创 单例模式示范
class MapIndexDatabase {public:MapIndexDatabase() {}~MapIndexDatabase() {}bool Init(const std::string& file_path);std::shared_ptr<std::set<MultiMapNodeIndex>> GetLinkNodeIndex( const std::string& index_id);std::shared_ptr<s
2021-08-19 15:03:05 62
原创 g2o完整BA示例
optimizer.h#ifndef OPTIMIZER_H#define OPTIMIZER_H#include "Map.h"#include "MapPoint.h"#include "KeyFrame.h"#include "LoopClosing.h"#include "Frame.h"#include "Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h"namespace ORB_SLAM2{class LoopCl
2021-08-07 18:55:59 368
原创 ORB_slam对应的细节的记录
代码命名规则首先说一下代码在命名变量时的规则:“p”表示指针数据类型, "n"表示int类型 ,“b”表示bool类型 "s"表示set类型 ,“v”表示vector数据类型,“I”表示list数据类型 ,“m”表示类的成员变量,“t”表示线程。其中m、p、v、b我觉得是最常见,知道命名规则的话对代码理解会有一定帮助。使用的opencv的一些记录参考的链接是opencv官方文档参考KeyPoint关键点class KeyPoint Point2f pt:关键点的点的坐标 float si
2021-08-04 22:50:40 435
原创 融合滤波对应代码的理解
GPS数据和IMU数据的表示GPSData Eigen::Vector3d position_lla = Eigen::Vector3d::Zero();//LLA Eigen::Vector3d velocity = Eigen::Vector3d::Zero();//NED Eigen::Vector3d position_ned = Eigen::Vector3d::Zero(); Eigen::Vector3d true_velocity = Eigen::V
2021-07-28 21:52:56 517
原创 python代码技巧
1,要将不定数量的参数传递给一个函数的时候,python提供了位置参数和序列参数python函数传递参数的方式有两种:位置参数(positional argument) *args 表示多个无名参数,实际是一个tuple关键词参数(keyword argument)**kwargs 表示关键词参数,实际是一个dict同时使用的话,位置参数必须在关键词参数前面都使用的时候>>> def fun(*args, **kwargs):... print('args=',
2021-03-26 22:18:01 76
原创 python文件夹和表格处理
1,读取python中的第一层的文件夹和第二层的文件夹import ospath="/home/SENSETIME/huangweijie2/PycharmProjects/AUTODRIVE-7644_get_diff_map_node_score_ab2a7f4_2021_03_15_21_48_15"def get_sub_dirs(root_path): root_depth = len(root_path.split(os.path.sep)) c = [] # 存放第1
2021-03-16 19:55:58 127
原创 debug类的信息和typedef智能指针的用法
147namespace ad { 148 namespace rss { 152 namespace situation { 153 163 inline std::ostream &operator<<(std::ostream &os, VelocityRange const &_value) 164 { 165 os << "VelocityRange("; 166 os << "speedLon:..
2020-12-01 17:07:16 144
原创 友元函数、友元类见解
友元函数和友元类比较清楚的解释友元函数讲解友元函数是希望对客户友好,举个例子 B12,如果没有说明友元的话,必须式子要写成B2.75,如果共有的类是必须本身对像中加入其他的参数后调用,B.operator*(int 2.75),希望是B2.75或者2.75B的时候都是可以的。一个类的成员函数可以是另一个类的友元函数,这样子可以直接调用那个类的数据友元函数如果只是取数据的便利,完全可以增加一些公有的函数来处理。#include<iostream>using namespace st
2020-11-24 17:21:38 102
原创 Leedcode记录
1,回溯算法模板void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}...
2020-11-07 21:15:07 55
原创 链表二叉树debug工具
链表debug工具class Solution {public: ListNode *dummy; ListNode *get_head(vector<int> num) { dummy = new ListNode(-1); ListNode *store = dummy; for (auto x : num) { dummy->next = new ListNode(x);
2020-11-04 21:50:45 96
原创 CMakeLists编写和测试实例
cmake_minimum_required(VERSION 3.0)project(json_test)find_package(jsoncpp CONFIG REQUIRED)message("json config file path: ${jsoncpp_CONFIG}")get_target_property(JSON_INC_PATH jsoncpp_lib INTERFACE_INCLUDE_DIRECTORIES)include_directories( ${CMAKE
2020-10-19 15:45:56 1051 1
原创 停车场车位检测思路梳理
输入列表图像,在工具台中输出图像def show_images(self,images,cmap=None):输入的是某一张图片和给图片的name,make_write表示是否需要yyyyafafaffadfsfgf10.f
2020-10-05 12:30:20 790
转载 python小技巧
1,构建二进制数nums=[3, 10, 5, 25, 2, 8]L = len(bin(max(nums))) - 2bits = [[(x >> i) & 1 for i in range(L)][::-1] for x in nums][(3<<i)&1 for i in range(5)[::-1]]
2020-08-12 17:44:11 100
原创 相机程序的注释点
一、其实JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,我们看上面的符号,里面有[] ,{}等符号,其中1 []中括号代表的是一个数组;2 {}大括号代表的是一个对象3 双引号“”表示的是属性值4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。json文件共有6个数据类型1.string:字符串,必须要用双引号引起来。2. number:数值,与JavaScript的number一致,整数(不使用小
2020-07-14 11:33:45 192
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人