相机
文章平均质量分 58
Gone_float
这个作者很懒,什么都没留下…
展开
-
Jetson+zed2安装
nx2下zed2安装原创 2022-07-10 19:35:14 · 800 阅读 · 1 评论 -
编译运行Pop-up slam
Create or use existing a ros workspace.mkdir -p ~/popup_ws/srccd ~/popup_ws/srccatkin_init_workspacegit clone git@github.com:shichaoy/pop_up_slam.gitcd pop_up_slamInstall dependency packages of pythonsh install_dependenices.shDownload Datahttps:原创 2022-01-27 17:13:11 · 406 阅读 · 0 评论 -
图像标注-labelme标注自己的数据集
标注文件labelme标注后生成json文件项目案例的数据集为1280*720的图片,136张用于训练,16张用于测试。课程中的数据集有5个类别:“car”, “dashedline”, “midlane”, “pothole”, “rightlane”数据集图像文件及标注的json文件放置在~/mydataset目录下图像标注后的数据转换在mydataset路径下执行python labelme2voc.py roadscene_train roadscene_train/data_d原创 2021-12-27 10:37:47 · 2403 阅读 · 0 评论 -
ORB-SLAM2-建立双目稠密点云(一)
ORB_SLAM2提供位姿信息,elas_ros 提供深度数据,mappingWithPointCloud 节点实现三维点云拼接。在安装之前把所需要的库都装好,这个就不再叙述了下载修改后的ORB_SLAM2源码git clone https://gitee.com/zeende/orb_slam2 ORB_SLAM2_Pointcloud修改build_ros.sh修改文件名下载稠密点云包orbslam2_pointcloud_mappinggit clone https://gitee原创 2021-11-28 20:22:23 · 2467 阅读 · 8 评论 -
ORB-SLAM2双目开源框架 (4) LoopClosing解析
闭环检测(1)计算当前关键帧与其共视关键帧的最低相似性得分minScore,在关键帧数据库中与当前关键帧相似性得分高于minScore的关键帧为候选闭环关键帧vpCandidateKFs(2)将候选关键帧扩展为候选关键帧组,包含候选闭环关键帧及其共视关键帧。对候选关键帧组进行一致性测试:是否与其他候选关键帧共有相同的关键帧。(3)当候选关键帧组的一致性次数超过给定阈值mnCovisibilityConsistencyTh时,则对应的候选关键帧加入mvpEnoughConsistentCandidate原创 2021-11-17 15:31:46 · 350 阅读 · 0 评论 -
ORB-SLAM2双目开源框架 (3) LocalMapping解析
LocalMapping类局部建图线程运行LocalMapping类的Run()函数,该函数接受Tracking类得到的关键帧,对局部地图点进行管理,删除冗余的地图点,构建新的地图点,融合复合的地图点。然后对局部关键帧和局部地图点进行BA优化,相比跟踪线程,得到更加准确的关键帧位姿和地图点位置。由于跟踪线程中对关键帧的选择较为宽松,在局部建图线程中,对关键帧进行更为严格的筛选,并将筛选后的关键帧交给闭环线程,进行闭环检测和优化。处理新关键帧处理关键帧队列中的关键帧,为局部建图的后续工作做准备: 取出关原创 2021-11-16 22:36:30 · 2099 阅读 · 0 评论 -
ZED2+ORB_SLAM3+视觉惯性轨迹保存
在zed2_stereo_inertial.cc 中加入保存轨迹保存代码重新编译命令行cd ~/catkin_wssource ./devel/setup.bashroscore//另开一个命令行cd ~/catkin_wssource ./devel/setup.bash //不知道为什么不执行这一步就无法找到zed.launchroslaunch zed_wrapper zed.launch//另开一个命令行cd ~/catkin_ws/src/ORB_SLAM3rosrun原创 2021-11-15 10:38:34 · 1417 阅读 · 4 评论 -
ORB_SLAM3编译
cd ORB_SLAM3chmod +x build.sh./build.sh1.修改:找到目标所在的文件,比如我上面的就是localMapping.cc里。然后来到地628行,把x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);换成x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) /原创 2021-11-11 20:53:10 · 1885 阅读 · 0 评论 -
EVO评估轨迹
cd ~/evo/test/dataevo_traj tum FrameTrajectory_TUM_Format.txt KeyFrameTrajectory_TUM_Format.txt -p --plot_mode=xyz如果有groundtruth.txtevo_traj tum FrameTrajectory_TUM_Format.txt KeyFrameTrajectory_TUM_Format.txt groundtruth.txt -p --plot_mode=xyz得到以下结果原创 2021-11-14 20:30:34 · 1944 阅读 · 0 评论 -
ZED2 ROS下bag包的录制与回放数据
先学习一下基础操作bag包的录制(创建一个bag文件)以小海龟为例,首先我们要明白bag包中记录了ROS系统运行时的***话题***数据首先,执行以下命令:$ roscore$ rosrun turtlesim turtlesim_node $ rosrun turtlesim turtle_teleop_key这时按下键盘上的方向键应该会让turtle运动起来现在让我们录制所有发布的话题首先让我们看看目前有哪些话题:$ rostopic list -v/turtle1/comm原创 2021-11-14 17:45:07 · 2064 阅读 · 0 评论 -
ZED2+ORB_SLAM3
仿照/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下的ros_stereo.cc建立一个新文件,如zed2_stereo_inertial.cc。将代码复制过去,修改以下部分: ros::Subscriber sub_imu = n.subscribe("/imu", 1000, &ImuGrabber::GrabImu, &imugb); ros::Subscriber sub_img_left = n.subscribe("/camera/lef原创 2021-11-11 21:27:23 · 1243 阅读 · 6 评论 -
ORB-SLAM2发布位姿话题
修改zed_stereo_rect.cc#include<iostream>#include<algorithm>#include<fstream>#include<chrono>#include<tf/transform_broadcaster.h>///#include "../../../include/Converter.h"///#include <nav_msgs/Path.h>///#include .原创 2021-11-10 21:09:21 · 1640 阅读 · 1 评论 -
ZED2相机标定
1.//打开命令行roscore2.在文件夹下找到common.yaml 文件修改resolution为1//另开一个命令行roslaunch zed_wrapper zed.launch3.启用左右摄像头可视化功能//另开一个命令行rosrun image_view image_view __ns:=view1 image:=/zed/zed_node/left/image_rect_color & rosrun image_view image_view __ns:=vi原创 2021-11-02 22:00:11 · 609 阅读 · 1 评论 -
本质矩阵 基础矩阵 单应矩阵 (3)
除了基本矩阵和本质矩阵,我们还有一种称为单应矩阵(Homography) HHH 的东西,它描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上(比如墙,地面等),则可以通过单应性来进行运动估计。这种情况在无人机携带的俯视相机,或扫地机携带的顶视相机中比较常见。单应矩阵通常描述处于共同平面上的一些点,在两张图像之间的变换关系。考虑在图像 I1I1I1 和 I2I2I2 有一对匹配好的特征点 p1p1p1 和 p2p2p2。这些特征点落在某平面上。设这个平面满足方程:nTP+d=0\boldsy原创 2021-08-30 16:38:06 · 203 阅读 · 0 评论 -
本质矩阵 基础矩阵 单应矩阵 (2)
根据定义,本质矩阵 E=t∧R\boldsymbol{E}=\boldsymbol{t}^{\wedge} \boldsymbol{R}E=t∧R。它是一个 3×33 × 33×3 的矩阵,内有 999 个未知数。那么,是不是任意一个 3×33 × 33×3 的矩阵都可以被当成本质矩阵呢?从 E\boldsymbol{E}E 的构造方式上看,有以下值得注意的地方:• 本质矩阵是由对极约束定义的。由于对极约束是等式为0的约束,所以对 EEE 乘以任意非零常数后, 对极约束依然满足。我们把这件事情称为 EEE原创 2021-08-29 21:34:58 · 373 阅读 · 0 评论 -
本质矩阵 基础矩阵 单应矩阵 (1)
本质矩阵 基础矩阵 单应矩阵本质矩阵E(Essential Matrix):反映【空间一点P的像点】在【不同视角摄像机】下【摄像机坐标系】中的表示之间的关系。基础矩阵F(Fundamental Matrix):反映【空间一点P的像素点】在【不同视角摄像机】下【图像坐标系】中的表示之间的关系。ORB-SLAM点云地图中相机的位姿初始化,无论算法工作在平面场景,还是非平面场景下,都能够完成初始化的工作。其中主要是使用了适用于平面场景的单应性矩阵H和适用于非平面场景的基础矩阵F,程序中通过一个评分规则来原创 2021-08-27 11:40:46 · 602 阅读 · 0 评论 -
张正友标定法
张正友标定法介绍张正友标定法是基于针孔相机模型的,张正友标定法利用如下图所示的棋盘格标定板,在得到一张标定板的图像之后,可以利用相应的图像检测算法得到每一个角点的像素坐标 (u,v)(u,v)(u,v) 。张正友标定法将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 Z=0Z=0Z=0,由于标定板的世界坐标系是人为事先定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到每一个角点在世界坐标系下的物理坐标(X,Y,Z=0)(X,Y,Z=0)(X,Y,Z=0)。我们将利用这些信息:每一个角原创 2021-08-26 20:58:59 · 6380 阅读 · 1 评论 -
相机标定 之 前提
1.为什么需要相机标定?一个是由于每个镜头的在生产和组装过程中的畸变程度各不相同,通过相机标定可以校正这种镜头畸变,生成矫正后的图像——矫正透镜畸变;另一个是根据标定后的到的相机参数建立相机成像几何模型,由获得的图像重构出三维场景。具体来说:当我们用摄像机拍照时,从照片里得到一些空间信息(比如距离,尺寸等),是要利用二维图像得到三维信息。我们拍照的时候把空间物体信息通过摄像机变成了二维图像,这个过程本来是不可逆的。但如果我们可以找到一个摄像机的数学模型,就可以 :从二维图像+模型逆推得到原来三维信息。标原创 2021-08-25 21:53:58 · 367 阅读 · 0 评论