未知环境探索(二)基于边界点的自主环境探索

(一)探索导向点指引下的环境探索

通过对环境的分析,相应的信息处理,提取出引导机器人完全探索一系列未知环境的目标点

探索导向点的提取:

获取激光数据——>提取运动目标点——>探索决策树——>有限的时间内构建出完整或近似完整的环境地图。


几种方法的简单介绍:(力求大体上能懂,最好能实现出来)

1.A Frontier-Based Approach for Autonomous Exploration

检测open space 与 unexplore space 边界点。(这个问题的前期问题就是沿墙移动。在这之前,只能依靠沿墙移动的方式先大致的探索一个图。或者是在环境完全由直线的墙、走廊,圆形的会议室等的环境下探索)

解决的环境:复杂环境下的探索策略。基于栅格地图。证据格方法。

探索解决的关键问题是:Given what you know about the world, where should you move to gain as much new information as possible? 

解决的方式:To gain the most new information about the world, move to the boundary between open space and uncharted territory.

①建立证据格

open:occupancy probability (存在概率)<prior probability(先验概率)

unknown:存在概率等于先验概率

occupied:存在概率大于先验概率

(我的理解是,先验概率是0.5.当前有物体障碍存在概率为1.无则存在概率为0)

                                                       

(a)    证据格                                                                          (b)   边界 (有障碍物的地方不在运动目标的障碍物内                        (c )最小的边界区域


图(c)中0和1对应的是打开的门,2对应的是测不到的走廊尽头。

open space 与unknown space的边界标记为 frontier edge cell,这些cells聚类能形成一个小的区域。这个区域只要大于机器人的尺寸(被定义为最小所需区域),这个区域中点被认为是目标点。

找到目标点之后,机器人向没有访问过的目标点中最近的点移动。

每访问过一个目标点,就将该点加入进已访问的链表。并生成新的证据格。

如果一段时间后仍无法到达边界目标点,则将该点加入list of inaccessible frontiers。再次360扫描,朝下一点走去。


实验:

配有1个激光测距仪、16个声呐传感器、16个红外传感器的机器人。三传感器结合构建证据格,在很近的距离(低于16英寸)完全用红外传感器替代。

红外与声呐主要是用于避障。

以下:占据率较低的为白色空格;占据率未知的为小点;被占据的是黑色大点。

                                                           

(a)robot从走廊中间开始,发现3个目标点,朝最近的1去                      (b)update证据格,发现2个目标点,朝近处的0去。

                                          

(e)发现6个目标点,但是最近的两个去不了(在桌椅脚)                                      (f)半小时地图建成。所有目标点检测完成,剩下的都是不可到达的。


2. 基于RRT的搜索策略

The SRT Method:  Randomized strategies for exploration

to  be continue......




  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 摘要…………………………………………………………………………………………Ⅰ Abstract……………………………………………………………………………………Ⅲ 第1章绪论…………………………………………………………………………………1 1.1课题的背景和意义…………………………………………………………………1 1.2自主导航综述………………………………………………………………………2 1.2.1导航的概念……………………………………………………………………2 1.2.2导航的分类……………………………………………………………………2 1.2.3已知环境下的自主导航技术………………………………………………3 1.2.4未知环境下的自主导航技术………………………………………………8 1.3地图创建……………………………………………………………………………12 1.3.1几种常用的环境表示方法…………………………………………………12 1.3.2快速同时定位与地图生成(fastSLAM)……………………………………14 1.3.3基于视觉的同时定位与地图生成(vSLAM)……………………………16 1.3.4基于拓扑地图的同时定位与地图生成…………………………………18 1.4基于多机器人协作的路径探索综述…………………………………………19 1.4.1协作探索的定义………………………………………………………………19 1.4.2协作探索的国内外研究现状………………………………………………20 1.4.3协作探索中的关键问题……………………………………………………21 1.5本文的主要研究内容……………………………………………………………23 第2章基于速度空间寻优的局部避障方法………………………………………25 2.1引言…………………………………………………………………………………25 2.2速度空间寻优方法………………………………………………………………27 2.2.1曲率-速率法(CVM)…………………………………………………………27 2.2.2巷道-曲率法(LCM)…………………………………………………………28 2.2.3扇区-曲率法(BCM)…………………………………………………………29 2.3从笛卡儿空间到构型空间的转换……………………………………………30 2.4基于扇区分类的BCM改进……………………………………………………33 2.4.1扇区的形成与分类……………………………………………………………33 2.4.2最优扇区的选择………………………………………………………………34 -V-哈尔滨工业大学工学博士学位论文 2.5碰撞检测方法………………………………………………………………………36 2.5.1碰撞预测模型…………………………………………………………………36 2.5.2扩展卡尔曼滤波与速度估计………………………………………………37 2.5.3轨迹预测和碰撞检测方法…………………………………………………39 2.6基于BCM的局部避障实验结果及其分析…………………………………41 2.7本章小结……………………………………………………………………………43 第3章基于拓扑地图的单机器人路径探索………………………………………45 3.1引言…………………………………………………………………………………45 3.2拓扑地图的必要性……………………………………………………………45 3.2.1拓扑地图与逻辑定位…………………………………………………45 3.2.2拓扑地图创建需要解决的关键技术…………………………………47 3.3基于BCM的实时拓扑地图创建方法…………………………………………48 3.3.1新型拓扑地图的定义………………………………………………………48 3.3.2拓扑节点的检测………………………………………………………………49 3.3.3拓扑节点的定位………………………………………………………………50 3.4比例不变特征变换………………………………………………………………54 3.4.1特征提取………………………………………………………………………55 3.4.2特征匹配………………………………………………………………………57 3.5基于拓扑地图的定位算法………………………………………………………58 3.6拓扑地图与其他地图的性能比较实验………………………………………59 3.6.1导航效率对比实验……………………………………………………………59 3.6.2地图维护与更新性能比较…………………………………………………62 3.6.3 SIFT与实时导航的矛盾……………………………………………………63 3.7本章小结……………………………………………………………………………64 第4章基于拓扑地图的多机器人协作路径探索…………………………………65 4.1引言…………………………………………………………………………………65 4.2基于隐马尔可夫模型的节点定位……………………………………67 4.2.1贝叶斯滤波……………………………………………………………………67 4.2.2隐马尔可夫模型………………………………………………………………68 4.3协作策略的选择……………………………………………………………………70 4.3.1基于HMM的拓扑地图拼接………………………………………………71 4.3.2基于市场法的多任务分配…………………………………………………73 4.4基于扫描匹配的混合地图拼接…………………………………………………75 -VI-目录 4.4.1混合地图………………………………………………………………………76 4.4.2基于fastSLAM的栅格地图生成…………………………………………77 4.4.3基于足迹匹配的混合地图拼接……………………………………………81 4.5基于拓扑地图的多机器人协作探索实验……………………………………83 4.5.1地图拼接实验…………………………………………………………………83 4.5.2基于市场法的协作探索实验………………………………………………85 4.6本章小结……………………………………………………………………………88 第5章利用移动感知网提高路径探索效率………………………………………89 5.1引言…………………………………………………………………………………89 5.2移动感知网体系结构……………………………………………………………90 5.2.1总体结构………………………………………………………………………90 5.2.2传感器系统……………………………………………………………………91 5.3无线感知网的节点定位方法……………………………………………………92 5.3.1蒙特卡罗定位………………………………………………………………94 5.3.2基于MCL的节点定位……………………………………………………95 5.3.3基于混合蒙特卡罗Box的节点定位……………………………………96 5.3.4节点定位对比实验…………………………………………………………98 5.4基于移动感知网的多机器人协作路径探索………………………………100 5.4.1利用机器人部署无线感知网节点………………………………………100 5.4.2利用无线感知网减轻无线通讯负担……………………………………101 5.5多机器人协作路径探索实验系统……………………………………………102 5.5.1硬件系统………………………………………………………………………102 5.5.2软件系统………………………………………………………………………103 5.6本章小结…………………………………………………………………………105 结论…………………………………………………………………………………………106 参考文献……………………………………………………………………………………108 攻读博士学位期间所发表的学术论文………………………………………………120 哈尔滨工业大学博士学位论文原创性声明…………………………………………121 哈尔滨工业大学博士学位论文使用授权书…………………………………………121 致谢…………………………………………………………………………………………122 个人简历……………………………………………………………………………………123 -VII-哈尔滨工业大学工学博士学位论文 Contents Abstract(In Chinese)………………………………………………………………………Ⅰ Abstract(In English)………………………………………………………………………Ⅲ Chapter 1 Introduction…………………………………………………………………1 1.1 The Background and Significance of the Research Work……………………1 1.2 Overview of Autonomous Navigation……………………………………………2 1.2.1 Defination of Navigation………………………………………………………2 1.2.2 Classification of Navigation…………………………………………………2 1.2.3 Autonomous Navigation Techniques in Known Environments…………3 1.2.4 Autonomous Navigation Techniques in Unknown Environments………8 1.3 Map Building………………………………………………………………………12 1.3.1 Several Existing Environment Representations…………………………12 1.3.2 Fast Simultaneous Localization and Mapping(fastSLAM)……………14 1.3.3 Vision-based Simultaneous Localization and Mapping(vSLAM)……16 1.3.4 Topological Map-based Simultaneous Localization and Mapping……18 1.4 Overview of Cooperative Path Exploration by Multi-robots………………19 1.4.1 Defination of Cooperative Exploration……………………………………19 1.4.2 State-of-the-art of Cooperative Exploration………………………………20 1.4.3 Critical Problems in Cooperative Exploration……………………………21 1.5 Main Work of Dissatation…………………………………………………………23 Chapter 2 Local Obstacle Avoidance based on Velocity Space Method………25 2.1 Introduction…………………………………………………………………………25 2.2 Velocity Space Method……………………………………………………………27 2.2.1 Curvature Velocity Method(CVM)…………………………………………27 2.2.2 Lane Curvature Method(LCM)……………………………………………28 2.2.3 Beam Curvature Method(BCM)……………………………………………29 2.3 Conversion from Cartesian Space to Configuration Space…………………30 2.4 Improvements on BCM based on Beam Classification………………………33 2.4.1 Formation and Classification of the Beams………………………………33 2.4.2 Selection of the Best Beam…………………………………………………34 -VIII-Contents 2.5 The Prediction Method of Collision……………………………………………36 2.5.1 The Prediction Model of Collision…………………………………………36 2.5.2 Extended Kalman Filter and Velocity Estimation………………………37 2.5.3 Trajectory Prediction and Collision Detection Method…………………39 2.6 The Experimental Result and Analysis of Local Obstacle Avoidance based on BCM……………………………………………………………………………………41 2.7 Summary……………………………………………………………………………43 Chapter 3 Topological Map-based Path Exploration by Single robot………45 3.1 Introduction…………………………………………………………………………45 3.2 Necessity of Topological Map……………………………………………………45 3.2.1 Topological Map and Logic Localization…………………………………45 3.2.2 Critical Techniques to be Resolved in Topological Map Construction 47 3.3 The Method of Realtime Topological Map Building based on BCM………48 3.3.1 The Defination of the Novel Topological Map……………………………48 3.3.2 Detection of the Topological Node…………………………………………49 3.3.3 Localization of the Topological Node………………………………………50 3.4 Scale-invariant Feature Transform………………………………………………54 3.4.1 Feature Extraction……………………………………………………………55 3.4.2 Feature Matching………………………………………………………………57 3.5 Localization based on Topological Map………………………………………58 3.6 Comparative Experiments of the Map Performance between the Topological Map and other Map Representations………………………………………………59 3.6.1 Comparative Experiments on Navigation Efficiency……………………59 3.6.2 Performance Comparison of Map Maintenance and Update……………62 3.6.3 Contradiction between SIFT and Realtime Navigation…………………63 3.7 Summary……………………………………………………………………………64 Chapter 4 Cooperative Path Exploration based on Topological Map by Multi- robot………………………………………………………………………………………65 4.1 Introduction…………………………………………………………………………65 4.2 Node Localization based on Hidden Markov Model(HMM)………………67 4.2.1 Bayes Filter……………………………………………………………………67 4.2.2 Hidden Markov Model………………………………………………………68 4.3 Selection of Coordination Strategy………………………………………………70 -IX-哈尔滨工业大学工学博士学位论文 4.3.1 Topological Map Merging based on HMM………………………………71 4.3.2 Multi-task Allocation based on Market Economy………………………73 4.4 Hybrid Map Merging based on Scan Matching………………………………75 4.4.1 Hybrid Map……………………………………………………………………76 4.4.2 Grid Map Building based on fastSLAM…………………………………77 4.4.3 Hybrid Map Merging based on Footprint Matching……………………81 4.5 Topological Map-based Experiment of Cooperative Path Exploration by Multi-robot………………………………………………………………………………83 4.5.1 The Experiment of Map Merging…………………………………………83 4.5.2 The Experiment of Cooperative Exploration based on Market Economy……………………………………………………………………………85 4.6 Summary……………………………………………………………………………88 Chapter 5 Improve the Efficiency of Path Exploration by Mobile Sensor Networks…………………………………………………………………………………89 5.1 Introduction…………………………………………………………………………89 5.2 Achitecture of Mobile Sensor Networks(MSN)………………………………90 5.2.1 Gross Structure…………………………………………………………………90 5.2.2 Sensor System…………………………………………………………………91 5.3 Node Localization of MSN………………………………………………………92 5.3.1 Monte Carlo Localization……………………………………………………94 5.3.2 Node Localization based on MCL…………………………………………95 5.3.3 Node Localization based on Mixture Monte Carlo Box…………………96 5.3.4 Comparative Experiments of Node Localization…………………………98 5.4 Cooperative Path Exploration by Multi-robot based on MSN……………100 5.4.1 Use Robots to Deploy the Node of MSN…………………………………100 5.4.2 Use MSN to Reduce the Burden of Wireless Communication………101 5.5 The System of Cooperative Path Exploration by Multi-robot…………102 5.5.1 Hardware System……………………………………………………………102 5.5.2 Software System……………………………………………………………103 5.6 Summary……………………………………………………………………………105 Conclusion…………………………………………………………………………………106 References…………………………………………………………………………………108 Papers published in the period of Ph.D.education……………………………120 -X-Contents Statement of copyright…………………………………………………………………121 Letter of authorization…………………………………………………………………121 Acknowledgment…………………………………………………………………………122 Resume………………………………………………………………………………………123
这里提供一个简单的未知环境机器人探索的代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define ROW 5 // 地图行数 #define COL 5 // 地图列数 typedef struct { int x; // 机器人当前所在的行 int y; // 机器人当前所在的列 } Robot; typedef struct { int x; // 物品所在的行 int y; // 物品所在的列 } Item; void init_map(int map[][COL], Robot *robot, Item *item); void print_map(int map[][COL], Robot *robot, Item *item); void move_up(int map[][COL], Robot *robot); void move_down(int map[][COL], Robot *robot); void move_left(int map[][COL], Robot *robot); void move_right(int map[][COL], Robot *robot); int main(void) { int map[ROW][COL] = {0}; // 地图,0 表示未探索的区域,1 表示已探索的区域 Robot robot = {0}; // 机器人初始位置 Item item = {0}; // 物品位置 init_map(map, &robot, &item); // 初始化地图机器人和物品的位置 printf("Start exploring...\n"); while (robot.x != item.x || robot.y != item.y) { // 当机器人找到物品时停止探索 print_map(map, &robot, &item); // 输出当前地图状态 int direction = rand() % 4; // 随机选择一个方向 switch (direction) { case 0: move_up(map, &robot); break; case 1: move_down(map, &robot); break; case 2: move_left(map, &robot); break; case 3: move_right(map, &robot); break; default: break; } } printf("Find the item at (%d, %d)!\n", item.x, item.y); return 0; } // 初始化地图机器人和物品的位置 void init_map(int map[][COL], Robot *robot, Item *item) { srand((unsigned)time(NULL)); // 初始化随机数生成器 int x, y; do { x = rand() % ROW; // 随机生成物品所在的行 y = rand() % COL; // 随机生成物品所在的列 } while (x == 0 && y == 0); // 物品位置不能与机器人初始位置重合 map[x][y] = 1; // 标记物品所在位置已探索 item->x = x; item->y = y; } // 输出当前地图状态 void print_map(int map[][COL], Robot *robot, Item *item) { printf("Robot is at (%d, %d)\n", robot->x, robot->y); printf("Item is at (%d, %d)\n", item->x, item->y); printf("Current map:\n"); for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { if (robot->x == i && robot->y == j) { printf("R "); // 机器人位置用 R 表示 } else if (item->x == i && item->y == j) { printf("I "); // 物品位置用 I 表示 } else if (map[i][j] == 1) { printf(". "); // 已探索的区域用 . 表示 } else { printf("? "); // 未探索的区域用 ? 表示 } } printf("\n"); } } // 向上移动机器人 void move_up(int map[][COL], Robot *robot) { if (robot->x > 0) { // 判断是否到达地图边界 robot->x--; map[robot->x][robot->y] = 1; // 标记当前位置已探索 } } // 向下移动机器人 void move_down(int map[][COL], Robot *robot) { if (robot->x < ROW - 1) { // 判断是否到达地图边界 robot->x++; map[robot->x][robot->y] = 1; // 标记当前位置已探索 } } // 向左移动机器人 void move_left(int map[][COL], Robot *robot) { if (robot->y > 0) { // 判断是否到达地图边界 robot->y--; map[robot->x][robot->y] = 1; // 标记当前位置已探索 } } // 向右移动机器人 void move_right(int map[][COL], Robot *robot) { if (robot->y < COL - 1) { // 判断是否到达地图边界 robot->y++; map[robot->x][robot->y] = 1; // 标记当前位置已探索 } } ``` 这个代码示例使用随机数生成器模拟机器人未知环境中的探索过程,每次随机选择一个方向进行移动,直到机器人找到物品为止。在代码中,0 表示未探索的区域,1 表示已探索的区域,? 表示未知的区域,R 表示机器人的位置,I 表示物品的位置。可以根据实际需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值