ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
激光雷达--动态避障问题
-
我用slam_gmapping_xiaoqiang_rplidar_a2.launch建好一张地图之后,再按照手册用amcl进行自主移动,一切都很运行正常。但是还有一些需求,是否能在已有的地图中通过激光雷达对突然加入的动态障碍物进行检测,从而进行动态避障?看完手册好像只能通过orb或者kinect两个进行动态避障。激光雷达的动态避障并没有作相关介绍,所以想问下小强自带的镜像系统中有没有实现激光雷达的动态避障功能呢?
-
wtw_ROS说:
我用slam_gmapping_xiaoqiang_rplidar_a2.launch建好一张地图之后,再按照手册用amcl进行自主移动,一切都很运行正常。但是还有一些需求,是否能在已有的地图中通过激光雷达对突然加入的动态障碍物进行检测,从而进行动态避障?看完手册好像只能通过orb或者kinect两个进行动态避障。激光雷达的动态避障并没有作相关介绍,所以想问下小强自带的镜像系统中有没有实现激光雷达的动态避障功能呢?
是的,激光雷达也可以用于实现动态避障的功能。在已经建好地图的情况下,通过激光雷达可以实时检测到环境中的动态障碍物,并且通过机器人的移动来避开这些障碍物。
小强机器人的ROS镜像中,可以使用move_base包来进行动态避障的功能实现。需要使用到move_base的costmap参数配置功能,将激光雷达所检测到的障碍物作为静态障碍物,并利用局部地图来检测动态障碍物。
具体的操作可以参考以下步骤:
- 修改move_base配置文件中的costmap类型为“costmap_2d/Costmap2DROS”。
- 修改“obstacle_range”参数为激光雷达最大测距范围。
- 修改“raytrace_range”参数为激光雷达最大测距范围。
- 启用dwa_local_planner,并将“near”和“far”参数调整得更小,以提高机器人规避障碍物的响应速度。
通过以上配置,move_base将利用激光雷达实时检测环境中的障碍物,并在局部地图中更新这些障碍物的位置,从而实现激光雷达的动态避障功能。
同时,在实际应用中,还需要注意以下几点:
- 由于激光雷达数据存在噪声和不确定性,因此对局部地图的更新需要进行平滑处理。
- 相邻两次激光雷达数据之间的时间间隔需要尽可能短,以保证机器人能够及时检测到动态障碍物。
- 当机器人速度较快时,需要调整动态避障策略,以确保机器人能够安全规避障碍物。
-
@wtw_ros 如果你是新版本的系统的话 (机器人版本在6.0以上)。可以在机器人客户端中设置导航方式,里面有纯雷达导航,也是全部开源的。用的是slam_toolbox库。
导航和定位是两个东西,避障只要在move base里面正确设置costmap就行了。可以参考galileo_startup包里面的内容
-
@wtw_ros amcl教程里面实际已经可以响应激光雷达探测的动态障碍物
-
@xiaoqiang 是的,amcl已经实现了,不过我之前因为修改了一些参数导致雷达数据接收错误。现在已经可以了。