SLAM学习:使用move_base无法动态实现实时避障

本文描述了一位作者在使用自定义机器人模型与AMCL+Move_base算法时遇到的障碍物检测问题。当机器人面对实时障碍物时,尽管激光雷达能正确检测并显示在rviz中,但Move_base未能生成膨胀区域,导致机器人无法避开障碍。问题根源在于激光雷达的高度设置与move_base的costmap_common_params.yaml中障碍物高度参数设置不匹配。通过调整max_obstacle_height和min_obstacle_height参数,解决了障碍物检测失效的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

首先我使用的机器人模型是自己用solidworks制作然后转出为urdf模型的,然后在我用AMCL+Move_base算法的时候发现机器人无法躲避实时障碍物,也就是当你突然放一个物体在机器人面前,激光雷达是可以扫描到前方有物体而且会在rviz中的显示红色的点云信息但是却没有膨胀区域(也就是Move_base功能包中所设定的一个安全+可能危险+危险区域蓝色的一块)

一、问题描述
首先呈上问题的图片
在这里插入图片描述
可以看到上面的情况,在小车的面前有个正方体,但是却无法描述它的膨胀区域,最刚开始的时候我一直以为是我的move_base功能包出现了问题然后我就重新的去安装一遍功能包然后发现还是没有用,但是很奇怪的是当我用别人的一个小车模型但是同样的move_base包的时候却意外的发现是可以出现膨胀区域,那这下子问题就是我的小车模型上了。

二、问题解决
在我努力排除可能问题的努力下,终于发现问题所在,那就是我的激光雷达所设置的一个水平高度比较高,然后又因为move_base的配置文件costmap_common_params.yaml里面有一个设置障碍物最小和最大高度的选项;很巧的是两个错开了,就是雷达所在高度扫描过去是可以扫描到但是我move_base配置文件里面设置的识别到的障碍物高度如果在那个范围就直接过滤掉,所以最终原因就是costmap_common_params.yaml中的max_obstacle_height和min_obstacle_height参数设置问题,一般的min_obstacle_height设置为地面高度也就是0,max_obstacle_height设置成高于机器人的高度(我就是设置太低了引发的问题),至此就可以解决问题。
这是修改之后的图片
在这里插入图片描述
三、总结
这里要推荐给大家的参考网站
ROS_wiki
Costmap_2d
obstacle层参数配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值