[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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Pygame的游戏设计是使用Python编程语言和Pygame模块来进行游戏开发的一种方式。Pygame是一个专为电子游戏设计的Python模块,它提供了丰富的功能和工具,可以帮助开发者轻松地创建2D游戏。通过Pygame开发者可以处理图形、音效、输入设备和游戏逻辑等方面的功能。 在Python游戏设计中,使用Pygame可以轻松创建各种类型的游戏,包括贪吃蛇、飞机大战等。通过Pygame提供的功能,开发者可以实现游戏的界面设计、用户交互、游戏逻辑和音效等方面的功能。同时,Pygame还提供了一些实用的工具和函数,方便开发者进行游戏开发和调试。 如果你对Python游戏设计感兴趣,可以参考以下步骤: 1. 安装Pygame模块:在官方网站https://www.pygame.org/上下载Pygame模块,并按照官方文档的说明进行安装。 2. 导入Pygame模块:在Python代码中导入Pygame模块,以便可以使用它提供的功能和工具。 3. 创建游戏窗口:使用Pygame创建一个游戏窗口,设置窗口的大小和标题等属性。 4. 处理用户输入:使用Pygame监听用户的键盘和鼠标输入,并根据用户的操作进行相应的响应和处理。 5. 绘制游戏元素:使用Pygame提供的绘图函数和工具,在游戏窗口中绘制游戏元素,如精灵、背景和特效等。 6. 更新游戏逻辑:在游戏循环中,根据游戏的逻辑进行状态更新和处理,包括碰撞检测、计分和游戏结束等。 7. 播放音效和音乐:使用Pygame提供的音效和音乐功能,为游戏添加声音效果和背景音乐。 8. 调试和优化:在开发过程中,通过调试和优化,确保游戏的正常运行和流畅性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值