首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器人避障和跳过访问的补丁/地点

机器人避障和跳过访问的补丁/地点
EN

Stack Overflow用户
提问于 2014-05-29 14:52:44
回答 1查看 287关注 0票数 0

我在NetLogo编程方面是新手,我需要帮助。我正在做一个研究项目,在这个项目中,我创造了一个类似真实世界的世界,在这个世界中,道路和建筑都是被创造出来的。建筑物是黑色的,道路是白色的。机器人只能在白色路面上行走,即在道路上行走。我在避障算法上遇到了问题,没有去参观过的地方。我需要类似人类的基于行为的避障算法,即人们看到他们面前的障碍物,然后向后移动(或者向后一步,然后向右或向左移动,再次检查障碍物),或者看到右边,然后转向左边,反之亦然。现在在我的代码中,我使用随机360度旋转来避开障碍物,但我不需要,我需要基于行为的算法。这是我到现在为止所做的代码。

代码语言:javascript
复制
breed [robots robot] ;robot breed
robots-own [goal velocity]

globals[   ;set of global variables
        road-colour
        building-colour
 ]
to setup
 clear-all
 set road-colour white
 set building-colour black
 let block-area grid-x ; desired area for a grid block in km²
 let patch-area  grid-y ; area represented by a patch in km²
 let num-patches-in-block (block-area / patch-area)
 let side round sqrt num-patches-in-block
 let goals (patch-set patch -16 12 patch 12 12 patch -6 15 patch 9 12)
 ask patches [ set pcolor 10 ] 
 let roads patches with [
   (pxcor mod (side + 1) = 0 ) or
   (pycor mod (side + 1) = 0 )
 ]
 ask roads [ set pcolor white ]
 create-robots num [ set size 1
   set goal one-of goals
   set velocity speed 
  ]
 set-default-shape turtles "person"  


end

to move
  fd velocity
  if patch-here = goal [ die ]
end

to go
  ifelse [pcolor] of patch-ahead 1 = road-colour
  [ move ]  
  [ lt random-float 360 ]
  ;[avoid-obstacle]

 end

to avoid-obstacle
 ;code here
end
EN

回答 1

Stack Overflow用户

发布于 2014-05-29 15:20:28

你的问题有点模糊,但你可能想要阅读一些关于碰撞检测和避免的“经典”算法(来自Sun和Lumelsky),称为"Bug“算法。Bug算法对地形/路线的知识做了很少的假设,即使对于除了检测碰撞的能力之外没有任何“视觉”的机器人也是如此。各种bug算法的概述可以在here上阅读。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23927463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档