zoukankan      html  css  js  c++  java
  • 基于RRT的机器人自主探索建图

    一、方法讲解:

        本项目分为三个部分:机器人周围一定范围内基于RRT的全局检测,

                                           根据上一步检测的未知区域点执行sklearn.cluster.MeanShift聚类,获取聚类中心;

                                           根据聚类中心计算各点增益,取最大增益点为目标,调用move_base规划路径和控制机器人行走。

               

    二、各部分详解:

             2.1 基于RRT的全局检测:检测未知区域点并发布

                       以机器人为中心,激光采样范围为半径的正方形区域内,采用RRT算法计算未知区域点:如果RRT计算的某点在要计算的地图范围内,并且该点在地图内的状态为空闲区域点,则将该点加入RRT树;如果该点在地图的状态为未知状态区域,则该点不加入RRT树,并将该点发布出去;

            2.2 根据上一步检测的未知区域点执行sklearn.cluster.MeanShift聚类,获取聚类中心:

                    该部分订阅全局检测的未知区域点,并利用MeanShift算法获取聚类中心;

           2.3 根据聚类中心计算各点增益,取最大增益点为目标,调用move_base规划路径和控制行走。

                  根据设定的信息半径,和上一步的聚类中心,结合聚类中心离机器人的距离,计算各个聚类中心的信息增益,然后取信息增益最大的点作为目标点,调用move_base来向该点移动;新的聚类中心和增益不停被计算,因此在运动过程中目标点可能会改变,或者因为移动地图中原来的目标点变为空闲区域,则新的目标点会被计算。

       

    三、效果展示:

           建图算法采用gmapping,激光角度220度.,激光范围14米。

           蓝色线:全局RRT树;

           绿色点:地图状态未知区域点

           绿色线:move_base全局规划

           紫色线:机器人移动轨迹。

    例一:

     

     例二、

     

    仿真环境下:左下角、底部及右下角图建歪了。

    仿真模型大小:70米*64米

     

  • 相关阅读:
    (转)简洁常用的栏目切换js.可以直接使用
    (转)MVC3+EF4.1学习系列(十)MVC+EF处理树形结构
    欧拉图
    SPFA算法——最短路径
    uva 10608 FRIENDS
    scau 1077 韩信点兵
    最短路径的几种算法的路径问题(floy , dij , spfa)
    最大流(BFS)
    hdu 3459 Flow Problem
    并查集
  • 原文地址:https://www.cnblogs.com/serser/p/8136073.html
Copyright © 2011-2022 走看看