LeGO-LOAM跑KITTI数据集评估方法【代码改】

评估

只需要轨迹信息,也就是时间戳,xyz和旋转四元数。可以只保存这部分的轨迹就可以。在LeGO-LOAM项目中mapOptmization.cpp文件,cloudKeyPoses6D中保存了一个点对应的位置信息和旋转信息。只需要将其中旋转的欧拉角转换为旋转四元数。

代码修改

1、添加轨迹函数

将原有函数改为(参考ORBSLAM3轨迹的保存):

void visualizeGlobalMapThread(){
        ros::Rate rate(0.2);
        while (ros::ok()){
            rate.sleep();
            publishGlobalMap();
        }
        // save final point cloud
        std::cout << "start save final point cloud" << std::endl;
        std::cout << "======================================================" << std::endl;

        ofstream f;
        f.open("/home/l/data/lego_traj.txt");
        f << fixed;
        //std::cout << "traj roll" << cloudKeyPoses6D->points[0].roll << std::endl;
        for(size_t i = 0;i < cloudKeyPoses3D->size();i++)
        {
            float cy = cos((cloudKeyPoses6D->points[i].yaw)*0.5);
            float sy = sin((cloudKeyPoses6D->points[i].yaw)*0.5);
            float cr = cos((cloudKeyPoses6D->points[i].roll)*0.5);
            float sr = sin((cloudKeyPoses6D->points[i].roll)*0.5);
            float cp = cos((cloudKeyPoses6D->points[i].pitch)*0.5);
            float sp = sin((cloudKeyPoses6D->points[i].pitch)*0.5);

            float w = cy * cp * cr + sy * sp * sr;
            float x = cy * cp * sr - sy * sp * cr;
            float y = sy * cp * sr + cy * sp * cr;
            float z = sy * cp * cr - cy * sp * sr;
            //save the traj
            f << setprecision(6) << cloudKeyPoses6D->points[i].time << " " << setprecision(9) << cloudKeyPoses6D->points[i].x << " " << cloudKeyPoses6D->points[i].y << " " << cloudKeyPoses6D->points[i].z << " " << x << " " << y << " " << z << " " << w << endl;
        }

        f.close();
}

参考代码:
1、LeGo-LOAM运行KITTI数据集
2、LeGO-LOAM初探:原理,安装和测试
3、LeGO-LOAM初探:原理,安装和测试

2、参数修改

因为KITTI的激光雷达是64线所以为了充分保证64线的充分利用,需要要修改参数,位于utility.h中

修改代码如下:

// 注释掉原来的
// // VLP-16
// extern const int N_SCAN = 16;
// extern const int Horizon_SCAN = 1800;
// extern const float ang_res_x = 0.2;
// extern const float ang_res_y = 2.0;
// extern const float ang_bottom = 15.0+0.1;
// extern const int groundScanInd = 7;

// 添加新的
// KITTI的64线
extern const int N_SCAN = 64;
extern const int Horizon_SCAN = 2083;
extern const float ang_res_x = 360.0/float(Horizon_SCAN);
extern const float ang_res_y = 26.8/float(N_SCAN-1);
extern const float ang_bottom = 24.8;
extern const int groundScanInd = 55;

参照大佬:LegoLOAM在KITTI数据集中的参数配置

【注】:欧拉角到四元数的转换参照四元数与欧拉角(Yaw、Pitch、Roll)的转换

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具 kitti数据集相关工具
### 回答1: LEGO-LOAM是一种基于激光雷达的室内外定位和地图构建方法。可以用来运行KITTI数据集,KITTI数据集是车辆自动驾驶领域的一个常用数据集。需要配置好相应的环境并进行编译运行,详细的安装和运行方法可以参考LEGO-LOAM的github页面。 ### 回答2: Lego-LOAM是一种基于激光雷达的SLAM算法,它可以通过对激光雷达扫描数据进行处理,实现对机器人运动及环境地图的估计和建立。Lego-LOAM能够较好地适应小规模场景的建图任务,尤其是在室内环境中具有一定的优势。在Lego-LOAM中,通过将扫描数据进行4D点云数据的拆分,将运动估计问题转化为优化问题,使用了多种传感器数据来进行建图和定位。 Kitti数据集是一个广泛使用的用于自动驾驶和机器人人工智能领域的开源数据集,其包含了激光雷达、相机、GPS和IMU等多种传感器数据,可以为机器人和自动驾驶系统的开发提供相应的数据。因此,Lego-LOAM也可以在Kitti数据集上进行测试和验证。 为了在Kitti数据集上运行Lego-LOAM,首先需要下载Kitti数据集,并将数据进行预处理,将数据转换为Lego-LOAM能够识别的格式,可以使用KITTI2Bag工具来进行转换。接着,需要设置运行Lego-LOAM时的相关参数,包括激光雷达的参数、地图的分辨率、点云降采样的程度等。 运行Lego-LOAM时,需要使用ROS来进行相关功能包的调用和运行。可以通过运行命令行来启动Lego-LOAM节点,将现有的参数传递给程序。运行后,Lego-LOAM将会读取Kitti数据集,进行运动估计和建图,并输出相应的结果。可以通过RViz或其他可视化工具来查看建立的地图和机器人的轨迹。 总之,Lego-LOAM可以在Kitti数据集上进行测试和验证,并可以通过设置相关的参数来适应不同的应用场景。同时也可以通过其他工具,如RViz等来进行效果的可视化和分析。 ### 回答3: LEGO-LOAM是一种高效,高精度的激光雷达SLAM算法,适用于车辆或机器人进行自主导航。LEGO-LOAM使用Velodyne VLP-16激光雷达,可以在移动车辆上实时构建地图和定位车辆的确切位置。Kitti数据集是一个常用的用于测试SLAM算法的公共数据集,它包括了各种场景下的激光雷达数据、图像和真实轨迹数据。 要在LEGO-LOAM中运行Kitti数据集,首先需要下载数据集。数据集可以从互联网上下载,包含了许多不同场景的激光雷达数据、图像和地面真实轨迹数据。然后需要在LEGO-LOAM中设置参数。LEGO-LOAM提供了不同的参数配置文件,可以根据需要修文件中的参数。其中一个重要的参数是Velodyne激光雷达的参数,需要根据使用的激光雷达型号进行设置。另外,还需要设置地面提取的参数和激光雷达的物理参数等。 在参数设置完成后,可以使用LEGO-LOAM中提供的kitti2bag脚本将Kitti数据集转换为ROS bag格式。这个脚本会读取数据集中的激光雷达数据、图像和真实轨迹数据,并将其转换为ROS bag文件,便于在ROS环境中进行处理。然后,在ROS环境下运行LEGO-LOAM节点,在处理ROS bag文件时,LEGO-LOAM会读取激光雷达数据、图像和真实轨迹数据,并在运行过程中实时地构建地图和定位车辆的位置。 最后,可以通过ROS的rviz工具观察LEGO-LOAM的输出结果。其中,激光雷达的点云会被转换为3D地图,并显示出来。同时,LEGO-LOAM会输出车辆在地图中的位置信息。通过观察rviz的输出结果,可以对LEGO-LOAM的运行效果进行评估和调试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值