九、SLAM学习笔记—— Cartographer建图(虚拟机仿真包)

一、cartographer 回放采集数据包

        在研究cartographer算法的时候,经常需要调试算法或者复现bug,此时利用playbag(播放包)会更加的方便。playbag里面主要包含水平激光信息(horizontal laser 2d)和惯性传感器(IMU)的信息。

1、第一步需要启动ros核心服务,如果已经启动了roscore则不再需要启动

roscore

2、打开rviz可视化图形界面

        有时候,我们需要在cartographer算法中用std:cout输出调试信息,此时需要在roslaunch后面加上--screen。

cd slam_ws
# 不打印输出信息
roslaunch cartographer_ros demo_revo_lds.launch
# 控制台打印信息,用于支持std::cout等调试输出
roslaunch --screen cartographer_ros demo_revo_lds.launch 

3、cartograher的编译

        在我们改动了cartographer算法之后,需要调用编译命令编译cartographer算法。首先先进入到cartographer的目录中。例如我这里采用的命名是slam_ws。如果我们没有改动cartographer的算法,则我们不用编译这一步骤。

# 进入到cartographer的工作空间
cd slam_ws
# 调用ninja编译cartographer
catkin_make_isolated --install --use-ninja

4、调用rosbag play命令播放指定的包 

# rosbag play YOUR_BAG_PATH
rosbag play ${HOME}/Downloads/2021-12-26-21-35-08.bag

二、ROS清理垃圾

        调试cartographer久了之后,我发现我的linux虚拟机的空间越来越小,甚至一度只剩下几十MB,后来发现由于运行很多次cartographer之后产生了许多的log,用以下命令清除无用log可以释放磁盘的空间。

rosclean check //检查有多少垃圾
rosclean purge // 清除垃圾
rosclean check //再次检查有多少垃圾

### 使用 Cartographer 进行 SLAM 仿真的地教程 #### 准备工作环境 为了进行基于 CartographerSLAM仿真,需先安装 ROS 和 Gazebo 并配置好开发环境[^1]。接着,在终端执行命令来安装 cartographer_ros 软件: ```bash sudo apt-get install ros-noetic-cartographer-ros ``` #### 配置机器人模型与传感器设置 创自定义的机器人描述文件(URDF),并确保其配备有激光雷达或其他适用的距离测量设备作为输入源给到 Cartographer。 #### 启动模拟器 启动带有特定世界场景以及已加载所需插件的 Gazebo 实例,以便能够向 ROS 发布来自虚拟环境中物体的信息流。这一步骤通常通过编写 launch 文件完成自动化操作[^3]。 #### 初始化 Cartographer 结点 利用预先设定好的参数配置文件运行 `cartographer_node` ,该节点负责处理订阅到的数据并实时更新内部的地表示形式。可以使用如下指令启动此过程: ```bash roslaunch my_robot_navigation cartographer.launch ``` 其中 `my_robot_navigation` 是项目名称空间而 `cartographer.launch` 则含了所有必要的初始化选项。 #### 可视化结果 借助 RViz 工具查看由 Cartographer出来的二维或三维栅格地;同时也可以保存最终版本用于后续分析或者部署至实际硬件平台上测试效果。 ```xml <launch> <!-- 加载Gazebo --> <include file="$(find gazebo_ros)/launch/empty_world.launch"/> <!-- 描述机器人的urdf文件路径 --> <param name="robot_description" command="$(find xacro)/xacro '$(find my_robot_model)/urdf/my_robot.urdf.xacro'" /> </launch> ``` #### 数据记录与回放 对于离线调试目的来说,还可以录制 bag 文件以供之后重播时观察算法性能表现,并据此调整优化各项超参直至满意为止。 ```bash # 录制bag文件 rosbag record /scan /odom /tf # 回放缓存数据 rosbag play recorded_data.bag --clock ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值