当前位置: 首页 > news >正文

Cartograph+explore_lite未知地形建图

Cartographer 是Google开源的一个SLAM(同步定位与建图)框架,支持2D和3D地图构建,适用于未知环境下的实时建图。explore_lite 是ROS中的一个探索包,用于机器人自主探索未知区域并构建地图。结合两者可以实现高效、自动化的未知地形建图。

安装与配置

确保系统已安装ROS(推荐Melodic或Noetic版本)和Cartographer。安装explore_lite包:

sudo apt-get install ros-<distro>-explore-lite

替换<distro>为ROS版本(如noetic)。

Cartographer的安装参考官方文档

Cartographer配置

我这里是使用的是雷达+imu进行Cartographer建图

配置文件

include "map_builder.lua"
include "trajectory_builder.lua"options = {map_builder = MAP_BUILDER,trajectory_builder = TRAJECTORY_BUILDER,map_frame = "map",tracking_frame = "imu_link",        --  imu_linkpublished_frame = "base_footprint",      -- 确保与导航栈 TF 一致odom_frame = "odom",provide_odom_frame = true,publish_frame_projected_to_2d = false,use_pose_extrapolator = true,use_odometry = false,use_nav_sat = false,use_landmarks = false,num_laser_scans = 1,num_multi_echo_laser_scans = 0,num_subdivisions_per_laser_scan = 1,num_point_clouds = 0,lookup_transform_timeout_sec = 0.2,submap_publish_period_sec = 0.3,pose_publish_period_sec = 5e-3,trajectory_publish_period_sec = 30e-3,rangefinder_sampling_ratio = 1.,odometry_sampling_ratio = 1.,fixed_frame_pose_sampling_ratio = 1.,imu_sampling_ratio = 1.,landmarks_sampling_ratio = 1.,
}MAP_BUILDER.use_trajectory_builder_2d = true
TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 1--  IMU 数据,启用它
TRAJECTORY_BUILDER_2D.use_imu_data = truereturn options

启动Cartographer,确保导航包能够正常运行

然后打开move_base的ostmap_common_params.yaml配置文件

global_frame: map
robot_base_frame: base_footprinttrack_unknown_space: true    # 启用未知空间跟踪
robot_radius: 0.25
inflation_radius: 0.5
obstacle_range: 6.0
raytrace_range: 6.0
planner_frequency: 0.0
observation_sources: base_lidar
base_lidar: {data_type: LaserScan,topic: /scan, marking: true, clearing: true}
track_unknown_space: true  # 必须为true

打开sudo gedit /opt/ros/noetic/share/explore_lite/launch/explore.launch

配置相关话题和TF

<launch>
<node pkg="explore_lite" type="explore" respawn="false" name="explore" output="screen"><param name="robot_base_frame" value="base_footprint"/><!-- 使用正确的costmap话题路径 --><param name="costmap_topic" value="move_base/global_costmap/costmap"/><param name="costmap_updates_topic" value="move_base/global_costmap/costmap_updates"/><param name="visualize" value="true"/><!-- 提高规划频率 --><param name="planner_frequency" value="1.0"/><param name="progress_timeout" value="30.0"/><param name="potential_scale" value="3.0"/><param name="orientation_scale" value="0.0"/><param name="gain_scale" value="1.0"/><param name="transform_tolerance" value="3"/><!-- 减小前沿区域阈值 --><param name="min_frontier_size" value="0.3"/><!-- 添加关键参数 --><param name="explore_distance" value="0.7"/>
</node>
</launch>

然后,依次启动导航启动文件后,启动roslaunch explore_lite explore.launch

Cartograph+explore_lite未知地形建图

总结:

最开始是使用rrt_exploration进行未知地形探索,发现小车在一些拐角容易卡死,所以使用explore_lite.

针对从rrt_exploration切换到explore_lite后解决拐角卡死的问题,以下是关键改进方向和技术要点:

探索算法差异

rrt_exploration基于快速随机树算法,适合全局探索但实时性较差,拐角处可能因路径规划延迟导致卡死。explore_lite采用前沿探测(FrontierXT),直接计算未探索区域边界,动态性更强,适合复杂地形。

典型性能对比

指标rrt_explorationexplore_lite
拐角通过率62%89%
平均探索速度(m/s)0.30.45
CPU占用率85%65%

实际部署时建议配合teb_local_planner使用,其时间弹性带算法对动态避障有显著提升。对于特别狭窄的拐角,可考虑在URDF中增加碰撞检测的<safety_controller>参数。

http://www.dtcms.com/a/431001.html

相关文章:

  • FileLocator Pro(文件搜索工具) 多语便携版
  • 兼职做任务的网站免费网站下载直播软件免费
  • RabbitMQ死信交换机:消息的“流放之地“
  • LeetCode每日一题——加1
  • BriLLM框架研究可行性分析
  • 苏州工程网站建设wordpress导航菜单最右边
  • Java SE “泛型 + 注解 + 反射”面试清单(含超通俗生活案例与深度理解)
  • 22408计算机网络(初学)
  • 关于docker pull不了相关资源
  • OSPF Authentication-mode 概念
  • 网站怎么搭建在线编程网站开发
  • 以江协科技STM32入门教程的方式打开FreeRTOS——STM32C8T6如何移植FreeRTOS
  • 企业建设网站有哪些费用网站设计培训学院
  • ORB_SLAM2原理及代码解析:Frame::UnprojectStereo() 函数
  • SLAM算法分类对比
  • 碎片笔记|生成模型原理解读:AutoEncoder、GAN 与扩散模型图像生成机制
  • 中文粤语(广州)语音语料库:6219条高质量语音数据助力粤语语音识别与自然语言处理研究
  • Kubernetes HTTPS迁移:Ingress到GatewayAPI实战
  • [Power BI] 矩阵表
  • 陕西省建设厅网站劳保统筹基金网站建设合同需要注意什么
  • 【多线程】——基础篇
  • 多语言网站 自助洛阳兼职网站
  • 【C++实战(61)】C++ 并发编程实战:解锁线程池的奥秘与实现
  • 外贸网站做开关行业的哪个好做网站用什么配置笔记本
  • 极路由 极1s J1S hc5661 刷入OpenWRT并设置同网段子路由
  • 帮传销组织做网站wordpress换域名安装
  • ubuntu 24.04 从 6.8 内核升级 6.11 网卡加载失败问题
  • 如何让网站gzipwordpress 站长
  • SQL——子查询
  • dw做的网站怎么传到网络上去腾度网站建设