一、方法讲解:

本项目分为三个部分:机器人周围一定范围内基于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米

基于RRT的机器人自主探索建图的更多相关文章

  1. SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图

    摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...

  2. 基于ros2 dashing的建图导航探索

    基于ros2 dashing的建图导航探索 1. 环境准备 安装ros2 dashing, 参考链接: https://index.ros.org/doc/ros2/Installation/Dash ...

  3. 除了ROS ,机器人自主定位导航还能怎么做?

    博客转载自:https://www.leiphone.com/news/201609/10QD7yp7JFV9H9Ni.html 雷锋网(公众号:雷锋网)按:本文作者科技剪刀手,思岚科技技术顾问. 随 ...

  4. cartographer环境建立以及建图测试(详细级)

  5. 机器人自主移动的秘密:实际应用中,SLAM究竟是如何实现的?(二)

    博客转载自:https://www.leiphone.com/news/201612/FRzmoEI8Iud6CmT2.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...

  6. 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]

    完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...

  7. 【BZOJ-2879】美食节 最小费用最大流 + 动态建图

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1366  Solved: 737[Submit][Status] ...

  8. 使用hector-slam和Kinect V1建图

    一.建图实际操作 下载源码测试源码,depthimage_to_laserscan,参考https://blog.csdn.net/u010925447/article/details/5649468 ...

  9. 通过gmapping和伪造的odom,完成Kinect建图

    传感器信息: 环境深度信息:sensor_msgs/laserScan -----> RGBD三维点云数据:通过ros功能包depthimage to laserscan完成深度相机数据转换成激 ...

随机推荐

  1. 本地通过VMware Workstation创建虚拟机,配置网络环境

    通过VMware Workstation创建虚拟机,系统安装完成后,需要配置相应网卡设置: 打开配置文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33 ...

  2. JAVAOOP异常

    排序: Try-catch-finally:try正常执行,如果有异常执行catch后执行finally,如果没有直接执行finally 执行顺序:try-catch:try中的语句正常执行,如果遇到 ...

  3. Gulp工具

    Gulp是一个基于node开发的构建工具. gulp本身是不进行任何构建任务,是通过gulp的一些列插件完成: gulp-less  编译LESS文件: gulp-autoprefix  添加css私 ...

  4. PHP设计者---composer

    Composer 是 PHP5以上 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages&q ...

  5. 36-应用Jwtbearer Authentication

    新建.net core webapi项目 E:\coding\netcore>dotnet new webapi --name JwtAuthSample 创建需要用到的实体对象类 namesp ...

  6. 5. css定位 居中

    1.准备工作 (1)添加背景图片 background: url('images/grass.png') (2)背景图片格式 background-size:contain; #完全限制在方框 #co ...

  7. ionic2升级到ionic3并打包APK

    通过IONIC2升级到3的时候,经过我一系列的测试,以及网上各种办法,现将新测有效的方法记录如下,本人按如下方法,对多个项目升级后,都能正常打包成APK IONIC 2到3的升级: 1.拷贝ionic ...

  8. 关于Python、Java、C#语言的一些比较

    不能说某某语言不好! 首先,千万别说某一个语言好不好,应为这样的用词是错的,我曾经在好多场合听到一些程序员说java好,.net不好这类的话. 其实语言不分好坏,只是在具体的某些领域或业务场景上不合适 ...

  9. CentOS 7.X 设置系统时间

    在CentOS 6版本,时间设置有date.hwclock命令, 硬件时钟和系统时钟 (1) 硬件时钟 RTC(Real-Time Clock)或CMOS时钟,一般在主板上靠电池供电,服务器断电后也会 ...

  10. 干货100+ 最超全的web开发工具和资源大集合

    干货100+ 最超全的web开发工具和资源大集合   作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和 ...