
SLAM
文章平均质量分 55
火星机器人life
热爱多传感器融合slam、机器人、人工智能相关技术。立志于让机器人更智能,为人类移民火星做铺垫。让科技使生活更幸福,让科技改变世界。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ubuntu20使用自主探索算法explore_lite实现机器人自主探索导航建图
1.安装turtlebot3。2.安装运行gmapping。3.安装explore_lite。原创 2025-06-07 08:58:44 · 710 阅读 · 0 评论 -
bev学习路线
BEVFusion Camera + LiDAR 多模态BEV融合。BEVFormer 基于Transformer的跨视角BEV建模。PETR 3D位置编码 + Transformer BEV。LSS (NVIDIA) 2D→3D→BEV 特征转换。BEV模型部署全栈教程(3D检测+车道线+Occ)国内首个BEV感知全栈系列学习教程。(1)准备一台大于4g显存的电脑。FIERY 预测未来BEV场景。使用gazebo仿真测试bev。(2)按照下面教程部署跑起来。(2)经典BEV论文与代码。原创 2025-04-01 10:38:45 · 272 阅读 · 0 评论 -
cube-slam详解
问题:使用深度学习的目标检测得到个框,怎么将这些框用上并集成到slam中做物体级别的slam?卡耐基梅隆大学的Shichao Yang, Sebastian Scherer,在论文CubeSLAM: Monocular 3D Object SLAM中给出了答案。并且结合orbslam的代码已经开源。地址:https://github.com/shichaoy/cube slam1.总体贡献及思路(1)由图像平面的框得到3d世界里的立方体。(2)建立物体级别的整套观测误差函数,并放入ORBSLAM2原创 2021-01-19 15:30:19 · 3164 阅读 · 0 评论 -
slam结合深度学习相关进展汇总笔记
各种汇总https://github.com/Ewenwan/MVisionorb简单结合检测https://github.com/Supersharker/ORBSLAM2_With_YOLOV3原创 2021-01-08 16:58:10 · 1132 阅读 · 0 评论 -
orbslam2中获取扩展树和本质图
orbslam2中使用扩展树和本质图的目的之一是减小优化函数的计算量。首先要理解共视图和扩展树和本质图的定义1.共视图如果两个关键帧的共视地图点超过15个点,就增加一条边,视为共视。所有的这些边连接在一起形成了共视图。如图12.扩展树对于所有的关键帧,每个关键帧都能够得到和当前关键帧共视程度最大的关键帧。将当前关键帧和共视程度最大的关键帧连接起来组成了扩展树。如图3.本质图本质图的定义为:1.扩展树的连接关系2.共视关系好的(>100)连接关系3. 形成闭环的连接关系,闭环后地原创 2020-12-29 10:37:33 · 1199 阅读 · 0 评论 -
bundle adjustment(光速平差法)残差和雅克比详细推导
ba残差和雅克比推导设输入位姿为世界坐标系在当前cam坐标系下的位姿,表示为TwcT^c_wTwc。输入的点为当前点在世界坐标系下的位置,表示为PwP^wPw,点在cam坐标系下表示为PcP^cPc得到点在cam坐标系下的位姿Pc=Rwc∗Pw+twc (1)P^c=R^c_w*P^w+t^c_w \quad (1)Pc=Rwc∗Pw+twc (1)ba的残差雅克比求导需要对于位置求导,链式法则中这一项求导是关键设ba的残差为e=u−1sKexp(ς)Pwe = u-\frac{1原创 2020-12-25 10:49:27 · 1129 阅读 · 0 评论 -
kalibr编译
1.先下载代码mkdir -p ~/kalibr_workspace/src cd ~/kalibr_workspace git clone https://github.com/ros/catkin.git2.要安装catkin工具 sudo apt-get install python-catkin-tools3.安装python-numpysudo apt-get install --reinstall python-numpy4.开始编译catkin build -DCMAK原创 2020-05-23 14:14:40 · 1714 阅读 · 0 评论 -
CNN对slam的一些改进
参考https://blog.youkuaiyun.com/wishchin/article/details/100634779cnn对slam的改进1.视觉检测和描述中的CNN方法主要是提升显著点/关键点的检测性能、以及提升关键点的局部描述子性能。为了更好的进行图像匹配。(1)提升显著点/关键点的检测性能主要论文SuperPoint(2)提升关键点的局部描述子性能论文LIFT特征是一种使用C...原创 2020-03-02 17:10:24 · 2052 阅读 · 0 评论 -
视觉重定位相关论文阅读(一)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-02-08 09:30:09 · 1750 阅读 · 0 评论 -
摄像头视场角计算
视场角计算方法方法1:拍物体参考https://wenku.baidu.com/view/411a838aaa00b52acec7ca27.html被测物体长为A宽为B,图像刚好覆盖被测量物体。水平视场角度θh=2atan(B/2l)\theta_h=2atan(B/2l)θh=2atan(B/2l)垂直视场角度θv=2atan(A/2l)\theta_v=2atan(A/2l)...原创 2019-12-20 14:58:51 · 28187 阅读 · 3 评论 -
视觉标记定位aruco使用
本文的目的是实现生成一张marker broad图片,告诉标记检测程序tag在真实世界中的实际大小。检测成功后得到marker的id,四个角点坐标,marker到相机的平移和旋转。1.下载安装参考安装参考https://blog.youkuaiyun.com/weixin_43053387/article/details/84952557aruco下载地址2.生成单个marker图片目的是生成一张...原创 2019-10-26 11:05:51 · 9152 阅读 · 6 评论 -
SLAM中栅格地图和拓扑地图的优缺点
1.栅格地图(Grid-based map)优点: (1)容易构建,表示,保存 (2)位置的唯一性 (3)对于短路径的规划方便缺点 (1)路径规划效率不高,空间浪费(栅格的分辨率不依赖于环境的复杂度)。 (2)需要精确的机器人位置估计。 (3)对于物体识别的人机交互问题效果不好。2.拓扑地图(Topological map)优点: (1)允许有效的路径规划,低空间复杂度。 (2)不需原创 2017-02-18 15:36:13 · 22831 阅读 · 0 评论 -
(一)SLAM拓扑地图(地图的生成和显示)
首先,SLAM中的拓扑地图是什么? 拓扑地图由节点和边组成。 如下图: 那么如何生成这种拓扑地图呢? 本文主要目的是生成一个简单的拓扑地图,并在g2o_viewer 中显示。1.拓扑地图的生成1.1安装g2o_viewer参考我的上一篇博客 http://blog.youkuaiyun.com/ktigerhero3/article/details/754574321.2生成拓扑地图本文参考g2o原创 2017-07-21 14:38:09 · 15385 阅读 · 2 评论 -
ubuntu14.04LTS系统安装g2o并运行g2o_viewer
安装步骤1.下载使用以下命令下载git clone https://github.com/RainerKuemmerle/g2o/注意,下载后再g2o文件夹下git log发现我当前的版本为 https://github.com/RainerKuemmerle/g2o/tree/deafc01ee8315b9405351fb145238c5d62f82dc72.安装注意,如果想运行g2o_view原创 2017-07-20 09:37:22 · 3321 阅读 · 0 评论 -
(二)SLAM拓扑地图(地图的优化)
本文主要实现slam中图优化中的回环优化。 对以下的拓扑地图进行图优化。 参考http://blog.youkuaiyun.com/heyijia0327/article/details/476865231.问题及推导对此图优化问题表述如下: 假设一个机器人初始起点在x0处,设这个起始点固定。然后机器人向前移动,通过编码器测得它向前移动了1m,到达第二个地点。接着,又向后返回,编码器测得它向后移动了0原创 2017-07-29 17:21:10 · 7923 阅读 · 1 评论 -
Eigen中欧拉角,旋转向量,旋转矩阵,四元数的转换
三维空间的旋转可以用欧拉角,旋转向量,旋转矩阵,四元数来表示。 首先是欧拉角表示法,我们可以用绕某个轴旋转来表示。 旋转向量就是用一个旋转轴和一个旋转角来表示旋转。 旋转矩阵用一个矩阵来表示空间中的旋转变换关系。 四元数用4个变量来表示旋转(增加一个纬度),可以避免万向节锁现象。具体转换公式可参考《视觉slam十四讲》这本书。下面的程序为使用Eigen库进行转换。 (1)旋转向量->旋转矩原创 2017-07-26 17:58:20 · 12564 阅读 · 0 评论 -
Eigen局部坐标系和世界坐标系转换
本文主要介绍使用Eigen库进行中间坐标的转换。 坐标系转换如图 假设机器在p1处在世界坐标系下的位姿为(x,y,z,θ)=(1,1,0,0),p2处世界坐标系下的位姿(x,y,z,θ)=(2,2,0,45) 求p1 和p2之间的转换t12。原创 2017-08-14 10:04:22 · 9721 阅读 · 3 评论 -
OpenCV局部坐标系和世界坐标系转换
本文实现局部坐标系到全局坐标系的转换。 假设机器在p1处在世界坐标系下的位姿为(x,y,z,θ)=(1,1,0,0),p1 和p2之间的转换为t12表示为(1,1,0,45), 求p2处世界坐标系下的位姿(x,y,z,θ)? 结果为(2,2,0,45)#include<opencv2/opencv.hpp>#include<iostream>using namespace std;usi原创 2017-09-04 10:55:01 · 8453 阅读 · 2 评论 -
(一)turtlebot3学习,运行的开源代码解析
1.文件解析和系统运行思路turtlebot3要动起来,需要运行一些程序.下面对运行的程序进行解析 (1)启动激光和控制命令发送程序及传感器接收程序roslaunch turtlebot3_bringup turtlebot3_robot.launch这个文件包括下面两个程序roslaunch turtlebot3_bringup turtlebot3_lidar.launch...原创 2018-06-05 07:58:16 · 5076 阅读 · 1 评论 -
(二)turtlebot3仿真并控制机器人在仿真环境下建图
使用Gazebo仿真1启动gazebo(1)设置模型参数,指定使用那种机器人型号:burger 或者waffleexport TURTLEBOT3_MODEL=burger(2)启动世界地图,默认的空白地图环境中加载Turtlebot3机器人roslaunch turtlebot3_gazebo turtlebot3_world.launch2通过远程操作创建地图...原创 2018-06-09 09:53:50 · 4801 阅读 · 3 评论 -
(三)turtlebot3实现仿真环境下的导航
本文实现turtlebot3在仿真环境下的的导航功能. 由于官方教程中要点击2D Pose Estimate按钮给出初始数据,但是我根据教程通过单击并拖动地图上的方向来设置地图上的大致位置总是不能成功,因此,只能自己想别的办法.我实现在仿真环境下的导航的步骤如下. (1)首先在仿真环境下建造一个地图,并保存 (2)加载这个地图并启动导航包 (3)启动slam包,加载保存地图的仿真环境 (...原创 2018-06-18 08:49:42 · 6848 阅读 · 8 评论 -
(四)turtlebot3控制机器人在实际环境下建图
本文实现两个功能,实际控制机器人及在实际环境下建图原创 2018-06-18 09:20:48 · 4369 阅读 · 1 评论 -
(五)turtlebot3用代码控制机器人直线及圆弧运动(/cmd_vel geometry_msgs/Twist的使用)
本文实现通过代码发送控制命令给机器人,让机器人安装特定的轨迹行走.希望实现的功能为直走和走一个圆形.原创 2018-06-20 07:22:15 · 16095 阅读 · 4 评论 -
(六)turtlebot3中slam代码位置和理论参考书籍论文
1.建图1.1代码建图启动按照如下命令 roslaunch turtlebot3_slam turtlebot3_slam.launch1.2参考书籍2.导航2.1代码2.2参考书籍3.控制3.1代码3.2参考书籍...原创 2018-07-16 14:38:23 · 1561 阅读 · 0 评论 -
Linux绘图工具gnuplot基本操作
1.gnuplot的安装sudo apt-get install gnuplot sudo apt-get install gnuplot-x11 2.测试使用输入gnuplot出现命令行,输入plot sin(x)画一条正弦曲线 如图3.绘制的图形保存和查看(1)设置保存的图形类型为epsset term post eps(2)设置保存的...原创 2018-07-05 16:16:19 · 15018 阅读 · 0 评论 -
(七)turtlebot3导航包解析
首先加载地图导航需要启动amcl节点和move_base节点,rviz节点。 (1)move_base节点从map_server节点接收并加载地图。 (2)move_base节点从amcl接收机器在地图中初始化的位置,而amcl接收从rviz中传送过来的初始化位置。 (3)move_base节点从gazebo中接收里程计信息/odom和激光信息/scan (4)move_base节点根据接...原创 2018-08-09 10:36:45 · 4339 阅读 · 3 评论 -
(八)turtlebot3路径规划解析
路径规划包括全局路径规划和局部路径规划1.全局路径规划turtlebot3全局路径规划采用astar或者Dijkstra算法。 首先计算潜在的路径 bool found_legal = planner_-&amp;amp;gt;calculatePotentials(costmap_-&amp;amp;gt;getCharMap(), start_x, start_y, goal_x, goal_y, ...原创 2019-03-02 14:22:54 · 5220 阅读 · 5 评论 -
我的ORB-SLAM2 RGBD-SLAM turtlebot实验视频
原创 2018-10-18 12:00:32 · 1031 阅读 · 0 评论 -
非线性优化Ceres的学习和使用(一)
本文实现使用Ceres拟合曲线原创 2018-12-18 09:28:15 · 3287 阅读 · 0 评论 -
非线性优化Ceres手动求导数值求导解析求导使用示例
参考Ceres官方文档http://www.ceres-solver.org/nnls_tutorial.html#hello-world实现手动求导进行非线性优化。// Author: keir@google.com (Keir Mierle)//// A simple example of using the Ceres minimizer.//// Minimize 0.5 (1...原创 2018-12-18 11:17:39 · 4190 阅读 · 1 评论 -
ceres非线性优化(分析推导雅克比矩阵例子)
什么时候需要分析求导雅克比?总结了下主要考虑下面方面(1)自动求导不成功的时候(2)需要考虑求解效率的时候,有时采用代数求导速度会快于自动求导下面将ceres官方文档http://ceres-solver.org/analytical_derivatives.html中的例子完整实现一下...原创 2018-12-18 17:12:59 · 4908 阅读 · 0 评论 -
坐标系的变换(Eigen库四元数表示的坐标)
本文主要介绍使用Eigen库进行空间坐标的转换。坐标系转换如图假设机器在p1处在世界坐标系下的位姿为(x,y,z,roll,pitch,yaw)=(1,1,0,0,0,0,),p2处世界坐标系下的位姿(x,y,z,θ)=(2,2,0,0 ,0,45)求p1 和p2之间的转换t12。此例中t12简单表示为(1,1,0,0,45)...原创 2019-01-11 10:36:48 · 11549 阅读 · 1 评论 -
非线性优化Ceres拟合圆
d原创 2019-01-11 19:44:12 · 2078 阅读 · 3 评论 -
matlab画直线
三种方法:(1)两点法plot ([0,5],[3,3])(2)点斜式refline(k,b)ezplot(‘y-k*x-b’)原创 2019-01-19 17:45:58 · 23013 阅读 · 1 评论 -
相机右手坐标系
在slam中,总是会牵涉到坐标系变换,那么就需要将坐标系定义弄清楚。需要弄清楚相机坐标系定义。相机坐标系定义为右手坐标系。opencv的图像坐标系统(Image Coordinate System)如图。坐标是三维坐标(x,y,z)原点(0,0,0)在深度相机的中心。如果没有明确指定,则以米为单位。在OpenGL中也是右手坐标系,如下参考https://software.intel.c...原创 2019-01-28 10:32:10 · 4912 阅读 · 0 评论 -
opencv鱼眼相机模型详解
https://docs.opencv.org/3.4/db/d58/group__calib3d__fisheye.html原创 2019-03-08 15:45:46 · 9012 阅读 · 1 评论 -
ROS中显示坐标系
1.在ros中显示坐标系问题1:假设世界坐标系原点表示为(x,y,z,roll,pitch,yaw)=(0,0,0,0, 0, 0,),某摄像头在世界坐标系下的位姿为(x,y,z,roll,pitch,yaw)=(0,0,1,0 ,0,90),如何在ROS中显示?使用tf来发布显示,程序如下#include <ros/ros.h>#include <visualizati...原创 2019-03-06 14:23:51 · 12322 阅读 · 0 评论 -
ceres实现鱼眼相机模型bundle adjustment
本文主要工作:(1)投影模型改为鱼眼相机畸变模型(2)具有数学公式计算的template类的coding#include<iostream>#include<eigen3/Eigen/Core>#include<eigen3/Eigen/Geometry>#include <opencv2/opencv.hpp>#include <...原创 2019-03-14 09:27:42 · 1413 阅读 · 0 评论 -
外参数获取推导(求坐标系转换矩阵方法)
问题:假如已知两个坐标系如图,如何得到外参数(坐标系变换矩阵:包括旋转和平移)?如图红色为x轴,绿色为y轴,蓝色为z轴粗的代表摄像头坐标系,细的代表世界坐标系。1. 观察变换推导法步骤:(1)求旋转矩阵R12(2)求平移t121)求旋转矩阵R12:很显然,世界坐标系轴绕z轴逆时针旋转90度就能对应上上图的角度。2)求平移t12求由摄像头坐标系到世界坐标系的平移的关键是知道两个坐标系...原创 2019-03-07 11:15:48 · 3731 阅读 · 1 评论 -
ceres实现针孔相机bundle adjustment
参考ceres的tutorialhttp://ceres-solver.org/nnls_tutorial.html#bundle-adjustment实现针孔相机bundle adjustment主要工作如下:(1)生成理想观测数据(2)将生成理想的数据作为BD的输入源(3)将投影模型改为无畸变的针孔模型#include &lt;ros/ros.h&gt;#include &lt...原创 2019-03-13 17:43:26 · 1919 阅读 · 1 评论