A-LOAM源码读后的一些简单的总结与备忘

关于A-LOAM运行时的问题,主要是将/camera_init里的破折号去掉,还有将opencv/cv.h替换为opencv2/imgproc.hpp,另外,假如出现RVIZ闪退的情况,主要是因为运行建图时筛选出的交点与面点过少的问题,可以适当降低相关参数,也可以多运行几次。

源码中的kitthelper.cpp主要是读取文件并且发布用的,读取过程中注意将点转换到点云坐标系下,以及将相关的图像从OpenCV图像转换为ROS图像,将读出的数据根据ROS节点的不同topic进行发布。

对于发布的点云会在scanRegistration处进行分析,首先去除点云中的无效点以及过近点,根据点之间的间距计算激光的间距以及点所在的激光线,然后计算点的曲率,也就是检验与附近的点相比坐标变化的大小,根据曲率对点进行排序,曲率高的点被选为角点,又一部分选为降采样角点。而曲率低的被选为面点,又一部分被选为降采样面点,同时去除附近的点。

从laserOdometry处计算位姿,检验订阅的特征点是否充足而且同步,不同步就报错,然后消除点的运动畸变,使用的是匀速模型进行估计,然后根据KD树寻找上一帧中的最近点,角点寻找两个最近的角点以计算线,然后以点和线的距离为残差。面点寻找三个最近的面点以计算面,然后以点和面的距离为残差。使用ceres库优化使残差最小并得到位姿,这里对残差以及代价函数的构建都在LidaFactor中,主要就是残差的计算以及对ceres的利用等。

然后到laserMapping处进行建图,同理检测信息的充足,实时以及同步,首先根据上次的估算对此次的位姿进行初始化,根据位移计算初始点,然后寻找相应的初始点的submap,然后调整中心点的位置,也就是将点云进行动态的移动,使中心点位置居中,然后根据中心点得到的有效的点云就可以拼接在一起,与收到的点云进行ICP优化,这里位姿的计算更加严格,角点需要五个邻近的角点做直线,还要根据PCA检测是否够直。面点需要五个邻近的面点做面,根据最小二乘法拟合以及检测面是否够平。然后对残差项根据ceres进行优化得到位姿。然后将点填充到网格中并进行过滤,每隔五帧发布一次附近的地图,每隔20帧更新一次总的地图。

以上就是A-LOAM的大致流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 A-LOAM 前,需要在安装 ROS Kinetic 的前提下进行。以下是使用 `catkin_make_isolated` 安装 A-LOAM 的步骤: 1. 创建 catkin 工作空间 在终端中输入以下命令创建 catkin 工作空间: ``` mkdir -p ~/catkin_ws_isolated/src cd ~/catkin_ws_isolated/ catkin_make_isolated ``` 2. 克隆 A-LOAM 代码 在终端中进入 catkin 工作空间的 src 目录下,并克隆 A-LOAM 代码: ``` cd ~/catkin_ws_isolated/src git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git ``` 3. 安装依赖项 在终端中输入以下命令安装必要的依赖项: ``` sudo apt-get install ros-kinetic-pcl-ros ros-kinetic-tf ros-kinetic-tf-conversions ros-kinetic-robot-state-publisher ros-kinetic-rosconsole ros-kinetic-rosconsole-bridge ros-kinetic-rospy ros-kinetic-rosgraph-msgs ros-kinetic-rosgraph ros-kinetic-rosbag ros-kinetic-rosbag-storage ros-kinetic-message-filters ros-kinetic-image-transport ros-kinetic-cv-bridge ros-kinetic-geometry-msgs ros-kinetic-sensor-msgs ros-kinetic-nav-msgs ros-kinetic-actionlib ros-kinetic-roscpp ros-kinetic-std-msgs ros-kinetic-catkin libgoogle-glog-dev libgflags-dev protobuf-compiler libprotobuf-dev libboost-dev ``` 4. 编译 A-LOAM 在终端中输入以下命令编译 A-LOAM: ``` cd ~/catkin_ws_isolated/ catkin_make_isolated --pkg aloam_velodyne ``` 5. 运行 A-LOAM 在终端中输入以下命令运行 A-LOAM: ``` source ~/catkin_ws_isolated/devel_isolated/setup.bash roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch ``` 这将启动 A-LOAM 节点,并开始接收 Velodyne 激光雷达数据进行 SLAM。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值