- 博客(14)
- 收藏
- 关注
原创 视频转gif
将/home/linuxbrew/.linuxbrew/bin添加到PATH中。修改文件/etc/ImageMagic-6/policy.xml。github上有一个开源的代码可以实现任何格式的视频转成gif。如果运行出现内存问题,尝试。
2023-07-19 15:41:47
234
原创 使用Kalibr标定zed mini双目相机
这篇文章介绍采用开源库Kalibr对zed mini双目相机的内外参进行标定,Kalibr在SLAM领域非常流行,因为他可以非常方便的对相机,IMU等传感器的内外参进行标定。
2023-06-30 13:59:59
1628
1
原创 从零手写VIO-IMU传感器
设定,加速度的高斯白噪声方差设定为0.019,陀螺仪的高斯白噪声方差为0.015.加速度bias的随机游走噪声方差设定为。目的:这个标定的主要目的是对传感器估计的bias和scale进行温度补偿,获取不同温度时bias和scale的值,绘制成曲线。和加速度计六面法不同的是,陀螺仪的真实值由高精度转台提供,这里的6面是指各个轴顺时针和逆时针旋转。多轴IMU传感器制作的时候,有制作工艺的问题,会使得xyz轴可能不垂直,如下图所示。使用欧拉法,即两个相邻时刻k到k+1的位姿是用第k时刻的测量值a,w来计算。
2023-03-02 14:15:53
401
原创 从零手写VIO-概述与课程介绍
VIO(Visual-Inertial Odometry):以视觉与IMU融合实现里程计IMU(Inertial Measurement Unit),惯性测量单元典型6轴IMU以较高频率(大于等于100Hz)返回被测物体的角速度与加速度受自身温度、零偏、振动等因素干扰,积分得到的平移和旋转容易漂移视觉(Visual Odometry)以图像形式记录数据,频率较低(15-60Hz居多)通过图像特征点或像素推断相机运动IMU与视觉定位方案优势与劣势对比方案IMU视觉优势快速响应。
2023-03-01 20:37:52
676
原创 Nodelet介绍
通常情况下,我们使用的ros节点都是独立的可执行文件,每个节点启动后在系统中都是以一个独立的进程存在的,即节点之间的通信就是进程间的通信,并且通信过程需要消耗网络的带宽。为了提高通信的效率和减少网络带宽的占用,ros中有一类特殊的节点-nodelet,这类节点可以在单个进程下以多个线程的形式运行,这样节点间的通信就是线程间的通信了。比如摄像头这类数据量大的传感器,可以使用nodelet方式与其他节点通信,从而大大提高传输效率。
2023-02-05 15:42:49
1322
原创 李群和李代数
旋转矩阵内的各个元素取值收到内在约束,即旋转矩阵为正交矩阵,且行列式为1。在采用优化方法进行SLAM位姿估计时,这种内在约束让优化求解变的非常困难。因此这里需要引入李群、李代数的概念,通过李群-李代数的转换可以去除这种内在约束,简化优化求解过程
2022-12-21 16:36:00
1127
原创 ORB特征
ORB(Oriented FAST and Rotated BRIEF)特征是一种常用的图像特征,其最大的优点是提取速度快,按业界的说法,ORB特征提取速度臂SURF快10倍,比SIFT快100倍。ORB特征由关键点和描述子两部分组成。他的关键点称为“Oriented FAST”,是一种改进的FAST角点。ORB提取速度快就得益于采用了FAST角点。它的描述子称为BRIEF(Binary Robust Independent Elementary Feature),是一种速度极快的二进制描述子。
2022-12-20 16:45:08
6013
原创 cv::Mat::step step1 elemSize elemSize1介绍
在看slam源码中,常见到cv::Mat类中的step,step1,elemSize和elemSize1等函数和属性,不了解这些函数和属性的含义的话,难以看懂slam源码中对图像的操作,因此本文介绍这些函数和属性的含义,并给出具体的例子。
2022-12-20 15:16:24
1630
原创 moveit perception
moveit包含感知(perception)模块,其可以将深度相机采集的点云或深度图转换成OctoMap(八叉树地图),用rviz可以显示Octomap,并且可以采用Octomap进行避障轨迹规划。感知周围环境对于机械臂来说非常重要,具有广泛的应用场景。本文简要介绍moveit中的perception模块。
2022-12-15 14:25:47
1681
4
原创 std::atomic原子操作
在多线程编程中,经常使用互斥锁锁住一段代码块,实现线程同步。原子操作可以看成是对变量的互斥锁。比如程序中一个线程读取一个变量,另一个线程修改该变量的值,那么采用原子操作可以不用添加互斥锁即可实现线程同步。
2022-12-14 10:04:18
610
原创 基于ROS的自主导航小车制作
本文介绍一种基于ros_arduino_bridge的自主导航小车的制作过程1、材料清单1、arduino nano2、10cm长母对母杜邦线若干3、TB6612FNG电机驱动模块4、2.54单排针1*405、1x15P单排母座若干6、1x8P单排母座若干7、7x9cm单面万能版8、JGA37直流减速电机,减速比1/43 (2)9、JGB37电机固定座 L型支架(2)10、六角联轴器 配套小车轮子使用6cm(2)11、机器人轮胎 68mm轮胎(2)12、2寸万向轮13、12V锂电
2020-07-29 19:59:06
3895
2
原创 树莓派通过raspi-config启动摄像头时,出错:Your firmwave appears to be out of date (no start_x.elf). Please update
树莓派通过raspi-config启动摄像头时,出错:Your firmwave appears to be out of date (no start_x.elf). Please update解决方法:1、查看boot分区所在的设备号,设备号可能是:/dev/mmcblk0p1df -h2、将该设备号挂载在/boot上mount /dev/mmcblk0p1 /boot3、完美解决...
2020-07-29 18:53:31
4568
5
原创 opencv和numpy常用函数使用说明
opencv的connectedComponentsWithStats函数使用说明基本语法代码示例基本语法nLabels, labels, stats, centroids=cv2.connectedComponentsWithStats(img,connectivity=4)nLabels:标签的数量labels:标签矩阵stats:bounding box的信息,每一行对应一个标签区...
2019-09-18 08:58:02
713
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人