自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (6)
  • 收藏
  • 关注

原创 could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

在CPU下运行没有问题,但是在GPU版本下,一直运行不成功。可以尝试限制一下GPU的运行资源,添加如下代码:config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))sess = tf.Session(config=config)刚开始分配少量资源,然后按需慢慢增加GPU资源。...

2021-01-10 20:30:28 239 1

原创 vscode 设置

1、修改字体在vscode 的偏好里面修改字体设置为monospace(等宽字体),

2020-10-19 16:18:07 603 1

原创 Ubuntu 高性能模式

一、安装cpu频率管理软件sudo apt-get install cpufrequtils二、查看CPU状态 cpufreq-info三、把cpu调整到性能模式: sudo cpufreq-set -g performance使用上述方式,重启系统后又回到默认方式。修改默认模式:1、安装sysfsutils: sudo apt-get install sysfsutils2、查看当前的调节器:cat /sys/devices/system/cpu...

2020-10-13 21:43:41 2366

原创 ubuntu 18.04 无法调节屏幕亮度

问题:ubuntu18.04系统无法通过调节右上角的小太阳调节屏幕亮度解决办法:安装brightness-controller通过PPA安装:sudo add-apt-repository ppa:apandada1/brightness-controllersudo apt updatesudo apt install brightness-controller...

2020-08-09 14:05:00 3688 3

原创 Ubuntu 18.04:安装 intel(R) Wi-Fi AX201 160MHz 无线网卡驱动

Linux----Ubuntu 18.04:No Wi-Fi Adapter Found (最新联想小新Pro 13 intel 无线网卡教程)

2020-08-08 17:26:05 15483

原创 错误:/boot/vmlinuz-5.2.18-generic has invalid signature

使用自己编译的内核出现如下问题:错误:/boot/vmlinuz-5.2.18-generic has invalid signatureerror: you need to load the kernel first解决办法:进入 BIOS,关闭 Secure Boot

2020-08-08 17:10:57 3875

原创 ubuntu 分辨率只有800x600解决办法

1. sudo vim /etc/default/grub2. GRUB_GFXMODE=1920x1080 //上面和下面的数字就是你的屏幕分辨率,前面的#也要放开 GRUB_GFXPAYLOAD_LINUX=1920x1080 3. sudo update-grub4. 重启一下你的计算机就可以了

2020-08-08 15:41:43 7010

原创 ubuntu 18.04 安装NVIDIA 显卡驱动

ubuntu-drivers devicessudo ubuntu-drivers autoinstallsudo apt install nvidia-xxx第一:安装ppa的显卡驱动源sudo add-apt-repository ppa:graphics-drivers/ppasudo apt update第二:检查显卡和推荐驱动ubuntu-drivers devices现实如下结果:ffly@noi:~$ ubuntu-drivers device.

2020-08-08 15:37:55 517

原创 6DOF位姿投影至3DOF位姿

double getYaw(const Eigen::Matrix3d& rotation){ Eigen::Matrix<double, 3, 1> direction = rotation * Eigen::Matrix<double, 3, 1>::UnitX(); return atan2(direction.y(), direction.x());} Eigen::Matrix3d tmp_R = location_T_world_b.

2020-08-06 15:07:05 221

原创 bitset 和 cv::Mat 相互转换

// bitset to Mat: std::bitset<256> bs(11); // some demo valuecv::Mat m(1,32,CV_8U, reinterpret_cast<uchar*>(&bs)); // 32 bytescerr << bs << endl;cerr << m << endl;// Mat to bitsetstd::bitset<256> .

2020-05-27 16:42:38 281

原创 CLion 添加ROS环境变量

http://wiki.ros.org/IDEs#CLionhttps://www.jetbrains.com/help/clion/ros-setup-tutorial.html添加ROS环境变量gedit ~/.local/share/applications/jetbrains-clion.desktop修改Exec="/home/cjn/soft-pack/clion-2020.1/bin/clion.sh" %f为 Exec=bash -i -c "/home/cjn/s.

2020-05-27 15:13:50 557

原创 二维数组 new delete

#include<iostream>using namespace std;const int M = 10; //行数const int N = 20; //列数int main(){ //第一种,可以直接[][]访问。但是内存不连续,不是很推荐使用,除非M\N都不确定 int** pNum;//以int为例 pNum = new int*[M]; for (int i = 0; i<M; i++) { pNum[.

2020-05-20 16:16:27 351

原创 ROS包依赖其他包的消息文件

依赖robot_lib消息包1、CMakeLists.txtfind_package(robot_lib)2、package.xml<build_depend>robot_lib</build_depend><run_depend>robot_lib</run_depend>

2020-04-21 14:24:24 534

原创 安装 Qt Creator ROS 插件

https://ros-qtc-plugin.readthedocs.io/en/latest/_source/How-to-Install-Users.html#qt-installer-procedure安装程序下载好了之后,鼠标右键单击该程序,将程序“权限”中的“执行”打钩,使该程序具有执行权限。如下图:后面正常安装就可以。...

2020-04-08 10:09:12 376

原创 evo_traj 错误:[ERROR] Unhandled error in evo.main_traj

在使用evo_traj单轨迹测试的时候出现了问题:命令:evo_traj tum groundtruth.txt --plot错误1:name: groundtruthinfos: 2281 poses, 30.494m path length, 56.979s duration[ERROR] Unhandled error in evo.main_trajTrac...

2020-04-03 16:55:32 3280 3

原创 Eigen 四元数、欧拉角、旋转矩阵、旋转向量相互转换

一、旋转向量1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z)Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z))1.1 旋转向量转旋转矩阵Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix();Eigen::.........

2020-03-31 19:08:39 3198 1

原创 VINS_Fusion 编译运行碰到的问题

编译编译ceres时Could not find a configuration file for package "Eigen3" that is compatible with requested version "3.3".解决:把ceres版本调整到1.14.x运行解决1、删掉编译文件重新编译,若不行,尝试步骤22、camera_models包和vins_e...

2020-02-18 15:59:24 3356

原创 kalibr 标定双目相机

1、kalibr 源码编译ROS编译见kalibr install wiki:https://github.com/ethz-asl/kalibr/wiki/installation注意:按照wiki步骤安装所有依赖包,不然编译会各种报错,安装后也可能会提示缺少python依赖包,按照提示安装即可。ImportError: No module named smpip ins...

2019-11-07 16:26:33 2337

原创 VIDIOC_S_FMT: Device or resource busy

在使用小觅相机SDK过程中,提示:VIDIOC_S_FMT: Device or resource busyInstalling gtk2-engines-pixbuf should do the trick for the video problem:sudo apt-get install gtk2-engines-pixbuf...

2019-11-07 08:29:55 2451

原创 'catkin build'提示'command not found'的解决方法

问题:'catkin build' gives 'command not found'解决:使用'catkin build'需要安装python-catkin-tools在终端中输入sudo apt-get install python-catkin-tools

2019-11-04 18:05:22 1153

原创 ubuntu 使用代理后git clone拒绝访问的解决

网上说原因是git被配置了代理,首先查看git代理设置git config --global -l报错:fatal: unable to read config file '/home/felix/.gitconfig': No such file or directory如果不报错就删除~/.gitconfig文件中"https_proxy=..."整行的语句上面的命令没解决...

2019-11-01 09:43:07 1592 1

原创 字符串拷贝

#include <iostream>#include <stdio.h>#include <string.h>#include <assert.h>using namespace std;char *my_memcpy(char *dst, const char* src, int cnt){ assert(dst != nu...

2019-09-18 16:55:36 159

原创 数组中位数

#include <iostream>#include <string.h>#include <vector>#include <algorithm>#include <queue>using namespace std;double search_mid_num(vector<int>& num){...

2019-09-18 15:41:13 253

原创 两个队列实现栈

void push(int x) { if (a.empty() && b.empty()) { a.push(x); return; } if (a.empty()) { a.push(x); while (!b.empty()) { a.push(b.front()...

2019-09-04 16:35:10 137

原创 C++ 输入处理

#include <iostream>#include <vector>#include <string>using namespace std;int main(){ string a; getline(cin, a); cout << a << endl; string b; get...

2019-08-27 16:47:46 265

原创 链表排序

快排:class Solution {public: ListNode* sortList(ListNode* head) { quick_sort(head, nullptr); return head; } void quick_sort(ListNode* head, ListNode* tail){ if(!h...

2019-08-23 11:24:42 327

原创 大数相加

#include <iostream>#include <string.h>#include <vector>#include <algorithm>#include <sstream>using namespace std;string add_large_num(string a, string b){ int...

2019-08-22 20:25:31 101

原创 C++类包含构造、拷贝构造、析构、赋值

#include <iostream>#include <string.h>using namespace std;class String{public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ St...

2019-08-22 09:20:02 182

原创 二分查找

#include <iostream>#include <vector>#include <algorithm>#include <stack>#include <queue>using namespace std;int binary_search(vector<int>& num, int val)...

2019-08-19 17:27:38 121 1

原创 面试题

1、队列的最大值请定义一个队列并实现函数max得到队列里的最大值,要求函数max,push_back,pop_front的时间复杂度都是O(1)。class Solution {public: Solution() : currIndex(0) {} void push_back(int number) { while (!maxisium.e...

2019-07-27 16:30:37 157

原创 g2o曲线拟合

#include <iostream>#include <g2o/core/base_vertex.h>#include <g2o/core/base_unary_edge.h>#include <g2o/core/block_solver.h>#include <g2o/core/optimization_algorithm_lev...

2019-07-22 16:23:03 203

转载 C++类型转换:隐式类型转换、类类型转换、显示类型转换

C++ 语言是一种强类型语言,当我们需要用一种类型的对象来替代另一种类型的对象进行相关操作时,必须首先进行类型转换。C++语言中,类型转换有两种方式,隐式类型转换和显示类型转换。1. 隐式类型转换在有隐式类型转换的表达式中,不需要明确指定一个类型的对象该转换为另外哪一个类型,这个工作将隐含地由编译器来完成,编译器将分析表达式的含义,进行类型转换。隐式类型转换针对不同的类型有不同的转换方...

2019-07-10 22:00:12 1533

原创 笔试题

1、大富翁游戏大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。输入描述:输入包括一个整数n,(1 ≤ n ≤ 6)输出描述:输出一个整数,表示投骰子的方法输入例子1:6输出例子1:32#...

2019-07-04 21:10:42 265

转载 ROS通信架构及其弊端

ROS通信架构及其弊端严格来讲ROS并非是一种操作系统,它只是一种通信框架,一种基于消息传递通信的分布式多进程框架。ROS的主要组成包括ROS Mastar 、 ROS Node、ROS Service等。不同的功能可以由不同的节点实现,节点之间可以通过发布和订阅话题来传递消息,它的本质是基于TCP/IP的Socket通信机制。不同的模块可以被单独设计,在运行时松散耦合,它执行若干种类型的通信...

2019-06-29 11:27:45 2117

原创 差速底盘运动解算

线速度当然也可以根据两轮δt时间走过的路程,通过...

2019-06-28 22:40:31 2324 1

原创 PCL ICP原理及实现

代码:#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/registration/icp.h>intmain (int argc, char** argv){ pcl::PointCloud<p...

2019-06-24 21:36:55 1219 1

原创 粒子滤波重采样

重采样主要是为了解决经典蒙特卡洛方法中出现的粒子匮乏现象。其主要思想是对粒子和其相应的权值表示的概率密度函数重新进行采样。通过增加权值较大粒子和减少权值较小粒子来实现。重采样虽然可以改善粒子匮乏现象,但也降低了粒子的多样性。两种较为常用的重采样算法:轮盘赌、低方差采样。一、轮盘赌(独立随机采样)每个粒子对应的权重大小就是图中各奖项对应的面积大小。每次采样就是转动一次转盘。 ...

2019-06-24 08:44:39 7854 1

原创 里程计运动模型

里程计模型使用相对运动信息,该信息由机器人内部里程计测量。为了提取相对距离,运动信息被转变成三个步骤的序列:旋转、直线运动(平移)和另一个旋转。 算法流程: 变量,和是将高斯零均值随机噪声添加到实际测距读数的结果。实际上,将一个小的附加误差相加到每个姿势分量以避免对于零度量测...

2019-06-23 19:31:17 2488

原创 IMU 测量模型和运动学模型

一、概念高斯白噪声: 测量噪声是AD转换器件引起的外部噪声,波动激烈的测量白噪声随机游走(这里指零偏Bias): 随机游走噪声,是传感器内部机械、温度等各种物理因素产生的传感器内部误差的综合参数,是变化缓慢的bias二、陀螺仪目前大多数的陀螺校准其实就是去掉零点偏移量,采集一定的数据,求平均,这个平均值就是零点偏移,后续飞控所读的数据减去零偏即可。陀螺仪测量模型其中是随...

2019-06-17 22:49:56 3067

转载 数值积分

数值积分法是求定积分的近似值的数值方法。即用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值,是一种递推的方法。数值积分法也是计算机仿真模拟中常用的一种方法。在已知函数的微分方程时,求解函数下一时刻的值,我们主要有欧拉法、梯形法和龙格库塔法。欧拉积分欧拉积分法是这些方法中精度最低的,但也是最容易编程实现的一种方法。欧拉法的表达式可以写成下面的形式:微分方程:则欧拉...

2019-06-17 22:47:26 1291

Serial_Node.tar.gz

实现机器人底盘与上层ROS通信协议功能,成功接收机器人底盘里程计,IMU, 电压等传感器信息。并实现将里程计和IMU通过发布话题方式发布到ROS中,方便系统其他节点订阅使用。

2017-11-06

urg_node.tar.gz

URG雷达驱动软件,通过ROS工程编译,通过运行roslaunch urg_node urg_lidar.launch,便可发布/scan消息

2017-11-06

Visual-Inertial Monocular SLAM with Map Reuse.pdf

Abstract— In recent years there have been excellent results in Visual-Inertial Odometry techniques, which aim to compute the incremental motion of the sensor with high accuracy and robustness. However these approaches lack the capability to close loops, and trajectory estimation accumulates drift even if the sensor is continually revisiting the same place. In this work we present a novel tightly-coupled Visual-Inertial Simultaneous Localization and Mapping system that is able to close loops and reuse its map to achieve zero-drift localization in already mapped areas. While our approach can be applied to any camera configuration, we address here the most general problem of a monocular camera, with its well-known scale ambiguity. We also propose a novel IMU initialization method, which computes the scale, the gravity direction, the velocity, and gyroscope and accelerometer biases, in a few seconds with high accuracy. We test our system in the 11 sequences of a recent micro-aerial vehicle public dataset achieving a typical scale factor error of 1% and centimeter precision. We compare to the state-of-the-art in visual-inertial odometry in sequences with revisiting, proving the better accuracy of our method due to map reuse and no drift accumulation.

2017-11-06

Robust Visual Inertial Odometry Using a Direct EKF-Based Approach.pdf

Abstract— In this paper, we present a monocular visual-inertial odometry algorithm which, by directly using pixel intensity errors of image patches, achieves accurate tracking performance while exhibiting a very high level of robustness. After detection, the tracking of the multilevel patch features is closely coupled to the underlying extended Kalman filter (EKF) by directly using the intensity errors as innovation term during the update step. We follow a purely robocentric approach where the location of 3D landmarks are always estimated with respect to the current camera pose. Furthermore, we decompose landmark positions into a bearing vector and a distance parametrization whereby we employ a minimal representation of differences on a corresponding σ-Algebra in order to achieve better consistency and to improve the computational performance. Due to the robocentric, inverse- distance landmark parametrization, the framework does not require any initialization procedure, leading to a truly power-up-and-go state estimation system. The presented approach is successfully evaluated in a set of highly dynamic hand-held experiments as well as directly employed in the control loop of a multirotor unmanned aerial vehicle (UAV).

2017-11-06

Keyframe-Based Visual-Inertial Odometry Using Nonlinear Optimization.pdf

Combining visual and inertial measurements has become popular in mobile robotics, since the two sensing modalities offer complementary characteristics that make them the ideal choice for accurate Visual-Inertial Odometry or Simultaneous Localization and Mapping (SLAM). While historically the problem has been addressed with filtering, advancements in visual estimation suggest that non-linear optimization offers superior accuracy, while still tractable in complexity thanks to the sparsity of the underlying problem. Taking inspiration from these findings, we formulate a rigorously probabilistic cost function that combines reprojection errors of landmarks and inertial terms. The problem is kept tractable and thus ensuring real-time operation by limiting the optimization to a bounded window of keyframes through marginalization. Keyframes may be spaced in time by arbitrary intervals, while still related by linearized inertial terms. We present evaluation results on complementary datasets recorded with our custom-built stereo visual-inertial hardware that accurately synchronizes accelerometer and gyroscope measurements with imagery. A comparison of both a stereo and monocular version of our algorithm with and without online extrinsics estimation is shown with respect to ground truth. Furthermore, we compare the performance to an implementation of a state-of-the-art stochasic cloning sliding-window filter. This competititve reference implementation performs tightly-coupled filtering-based visual-inertial odometry. While our approach declaredly demands more computation, we show its superior performance in terms of accuracy.

2017-11-06

Efficient Sparse Pose Adjustment for 2D Mapping.pdf

Pose graphs have become a popular representation for solving the simultaneous localization and mapping (SLAM) problem. A pose graph is a set of robot poses connected by nonlinear constraints obtained from observations of features common to nearby poses. Optimizing large pose graphs has been a bottle

2017-11-06

空空如也

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

TA关注的人

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