A-LOAM保存轨迹,修改文件记录

参考A-loam运行kitti及轨迹保存_aloam跑kitti数据集-优快云博客

保存话题/aft_mapped,参考上述链接方法二

 

保存话题/laser_odom_to_init,参考链接方法二

在main函数中,添加代码

ros::Subscriber save_path= nh.subscribe<nav_msgs::Odometry>("/laser_odom_to_init", 100, path_save);

并将以下void放在main函数之前

void path_save(nav_msgs::Odometry laserOdometry ){
 		   
	    //保存轨迹,
   			std::ofstream pose1("/home/cxx/A-LOAM/laser_tum.txt", std::ios::app);
			pose1.setf(std::ios::scientific, std::ios::floatfield);
			pose1.precision(6);
	
			static double timeStart = laserOdometry.header.stamp.toSec();
			auto T1 =ros::Time().fromSec(timeStart) ;
			pose1<< laserOdometry.header.stamp -T1<< " "
              << laserOdometry.pose.pose.position.x << " "
              << laserOdometry.pose.pose.position.y << " "
              << laserOdometry.pose.pose.position.z << " "
              << laserOdometry.pose.pose.orientation.x << " "
              << laserOdometry.pose.pose.orientation.y << " "
              << laserOdometry.pose.pose.orientation.z << " "
              << laserOdometry.pose.pose.orientation.w << std::endl;
			pose1.close();
            
}

运行后在目录下生成两个对应轨迹的txt文件

关键是找到轨迹话题对应的laserOdometry替换

### 如何使用LEGO-LOAM记录轨迹 为了实现通过LEGO-LOAM记录机器人的运动轨迹,可以通过`rostopic`工具订阅特定的话题来获取路径数据。具体来说,在运行LEGO-LOAM算法的过程中,系统会发布一个名为`/aft_mapped_path`的话题,该话题包含了机器人经过的地图匹配后的优化路径[^2]。 以下是具体的配置和操作流程: #### 1. 安装依赖项 在开始之前,需要确保已经正确安装了所有必需的库和软件包。这包括但不限于PCL(Point Cloud Library)、GTSAM等。例如,对于GTSAM的具体版本需求,可以按照如下方式下载并安装: ```bash wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip cd ~/Downloads/ unzip gtsam.zip -d ~/Downloads/ cd ~/Downloads/gtsam-4.0.0-alpha2/ mkdir build && cd build cmake .. sudo make install ``` 完成这些步骤后,创建一个新的ROS工作空间并将LEGO-LOAM源码克隆到其中: ```bash cd ~/catkin_ws/src git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git cd .. catkin_make -j1 ``` #### 2. 启动LEGO-LOAM 启动LEGO-LOAM的核心功能通常涉及加载其主要发射文件`lego_loam.launch`。此文件负责初始化所有的必要节点和服务,用于点云处理以及估计机器人姿态[^1]。因此,可以在终端中输入以下命令以启动整个系统: ```bash roslaunch lego_loam launch ``` #### 3. 获取轨迹数据 一旦LEGO-LOAM正常运行,就可以利用`rostopic`工具监听`/aft_mapped_path`话题中的消息流。每条消息代表了一个时间戳下的位置坐标及其对应的四元数表示的姿态信息。要持续监控这一过程,可执行下面这条指令: ```bash rostopic echo /aft_mapped_path ``` 这样就能实时观察到由传感器采集的数据所计算得出的位置变化情况,并将其存储下来作为历史记录的一部分。 如果希望进一步保存这些轨迹至本地文件,则可通过重定向输出的方式达成目标。比如将上述命令的结果写入文本文件当中去: ```bash rostopic echo /aft_mapped_path > trajectory_log.txt ``` 以上就是关于如何基于LEGO-LOAM框架下进行轨迹录制的一个简单介绍与实践指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值