首页
/ Zooids:构建群体用户界面的积木

Zooids:构建群体用户界面的积木

2024-09-26 10:09:05作者:谭伦延

Teaser

项目介绍

Zooids 是一个开源的开放硬件平台,旨在开发桌面群体用户界面(Swarm User Interfaces)。群体用户界面是一种新型的人机交互界面,由许多自主机器人组成,这些机器人不仅负责显示信息,还处理交互任务。Zooids 平台由一组定制设计的微型轮式机器人、一个无线基站、一个用于光学跟踪的高速 DLP 结构光投影仪以及一个用于应用程序开发和控制的软件框架组成。通过一系列使用 Zooids 开发的应用场景,我们展示了桌面群体用户界面的潜力,并讨论了群体用户界面独特的设计考虑因素。

项目技术分析

硬件

Zooids 机器人是直径为 26 毫米、高度为 21 毫米、重量约为 12 克的微型机器人。每个机器人由一个 100 mAh 的锂聚合物电池供电,并使用电机驱动的轮子进行移动。机器人内部包含一个柔性电极,用于电容触摸感应,并通过 NRF24L01+ 芯片与主计算机通信。

跟踪系统

Zooids 使用基于投影仪的跟踪系统来定位机器人。该系统利用德州仪器公司的高帧率(3000Hz)DLP LightCrafter 投影仪,将一系列灰度编码图案投影到平面上。机器人上的光电二极管独立解码这些图案,从而确定其在投影区域内的位置。

软件架构

Zooids 的通信结构由四个主要层次组成:应用程序层、仿真层、服务器层和硬件层。在应用程序层,计算出机器人的期望位置,并通过网络套接字传输到仿真层。应用程序开发者可以选择两种控制策略:比例-积分-微分(PID)位置控制或结合 PID 的混合互惠速度障碍(HRVO)。仿真层根据选择的控制策略计算机器人的目标位置,并将其发送到服务器层。服务器层负责向单个 Zooids 发送命令,同时监控它们的状态和位置。

每个机器人通过基于状态机的 PID 控制器独立控制其运动。机器人首先调整方向,然后加速到用户定义的偏好速度。在达到速度后,机器人通过 PID 控制保持方向,确保朝向最终目标。当接收到新的增量目标时,机器人将继续以相同速度移动,但 PID 控制将引导机器人朝向新的中间目标。当机器人接近最终目标时,它会减速并最终停止。

项目及技术应用场景

Zooids 平台适用于多种应用场景,特别是在需要动态、分布式用户界面的领域。例如:

  • 协作工作空间:多个 Zooids 机器人可以在桌面上移动,显示不同的信息或任务,帮助团队成员协作完成任务。
  • 教育与培训:Zooids 可以用于模拟复杂的系统或过程,帮助学生理解动态变化的概念。
  • 互动艺术装置:艺术家可以利用 Zooids 创建动态的、互动的艺术装置,吸引观众的注意力。

项目特点

  • 开源与开放硬件:Zooids 平台完全开源,硬件设计也开放,允许开发者自由定制和扩展。
  • 高精度跟踪:基于 DLP 投影仪的高速跟踪系统,确保机器人的位置精度。
  • 灵活的控制策略:支持 PID 和 HRVO 两种控制策略,适应不同的应用需求。
  • 模块化设计:Zooids 的模块化设计使得扩展和集成新功能变得简单。

通过 Zooids,开发者可以轻松构建复杂的群体用户界面,为用户提供全新的交互体验。无论是在协作工作、教育培训还是艺术创作中,Zooids 都能发挥其独特的优势,带来创新的解决方案。


Creative Commons License
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。

热门项目推荐
相关项目推荐

项目优选

收起
Python-100-DaysPython-100-Days
Python - 100天从新手到大师
Python
266
55
国产编程语言蓝皮书国产编程语言蓝皮书
《国产编程语言蓝皮书》-编委会工作区
65
17
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
196
45
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
53
44
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
268
69
qwerty-learnerqwerty-learner
为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers
TSX
333
27
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
896
0
advanced-javaadvanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
419
108
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
144
24
HarmonyOS-Cangjie-CasesHarmonyOS-Cangjie-Cases
参考 HarmonyOS-Cases/Cases,提供仓颉开发鸿蒙 NEXT 应用的案例集
Cangjie
58
4