[Python][集群机器人模拟]基于pygame的集群机器人随光源迁移模拟器开发

这次的实验是基于"Temperature-induced aggregation of young honeybees:
Individual behaviour vs. collective behaviour"(Nov. 2007 to June 2011,http://zool33.uni-graz.at/artlife/bee) 中提到的蜜蜂幼体在蜂巢中自发的随热源迁移的行为行进集群机器人模拟。BehaviouralClassesAmongYoungHoneybees(http://zool33.uni-graz.at/artlife/bee)
honeybeeini
honeybeelight
根据上述关于蜜蜂幼体研究,蜜蜂幼体行大致可以分为Random Walker, Wall Follower, Goal Finder和Immobile Bee四种。这次的集群机器人模拟实验主要针对Goal Finder随光源迁移的行为进行模拟。为了简化模拟,Goal Finded的行为可以简化为障碍物规避行为和热源寻找行为。为此,集群机器人搭载了两种类的传感器,障碍物检测传感器和光强度传感器。当机器人检测到障碍物时(其他机器人,墙体)停止移动随机一段时间后进行规避行为(可自定义),停止时间随机器人集群密度增加而增加。当机器人检测到一定强度以上的光时,停止移动一段时间后继续移动。停止时间随光强度增强而增加。因此,在强光区域,机器人逗留时间变长,机器人集群密度变大,进一步延长停留时间,从而达到迁移的目的。
借此契机本小组决定开发一个基于pygame集群机器人模拟器。本次实验仅实现最基础的行动机器人,可配置光源的长方形场地以及障碍物检测传感器和光强度传感器。其余类型的机器人,场地,传感器将于日后继续开发。
目录
实验过程
图中,黑色正方形边框为实验场地表示外围墙体,橘色由深至浅渐变圆环表示强度不同的两个动态光源。黄色的圆点表示机器人并标明了id。在机器人周边黄色和蓝色的圆环分别是障碍物检测传感器和光强度传感器的感应区域(机器人的面积范围不包括在内)。
当障碍物检测传感器在感应区域检查所有的像素的颜色,当检测出不同于光源颜
色(见下表)的像素时,机器人执行规避运动。

    def get_at(self, (x, y)): 
    	# real signature unknown; restored from __doc__
        """
        get_at((x, y)) -> Color
        get the color value at a single pixel
        """
        pass
ColorRGBAWeight/Light intensity
BLUE_0(85,85,255,255)15
RED_1(255,130,70,255)10
RED_2(255,170,130,255)5
RED_3(255,220,210,255)1
WHITE(255,255,255,255)0
YELLOW(255,255,0,255)0

当光强度传感器在感应区域检测到上表中的颜色时,按照 (各颜色像素点数量*光强度权重)/感应区域像素点总数 计算机器人周围的光强度,并将此光强度数值直接用作机器人停止概率。光强度数值越大,机器人停止概率越大,从而延长停留时间。
位于实验场地两侧动态光源随时间变化。实验初始,左侧光源最大并逐渐减弱,右侧光源最小并逐渐增强。当右侧光源达到最大时开始减弱,左侧光源开始增强,如此往复。下图分别是机器人聚集在左侧和右侧光源时的截图。
左侧光源
右侧光源
在实验进行时,可以按k移除一半的机器人观测机器人集群密度减小时的机器人行为。

RobotKiller

下图为实验中对左边半场机器人集群密度的计数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值