惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
Cloudbric
Cloudbric
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
博客园_首页
The Cloudflare Blog
C
Cisco Blogs
AWS News Blog
AWS News Blog
IT之家
IT之家
Cyberwarzone
Cyberwarzone
罗磊的独立博客
美团技术团队
V
V2EX
Project Zero
Project Zero
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
S
Schneier on Security
P
Privacy International News Feed
V
Visual Studio Blog
量子位
T
Tor Project blog
S
Securelist
腾讯CDC
A
About on SuperTechFans
T
Threat Research - Cisco Blogs
G
GRAHAM CLULEY
B
Blog RSS Feed
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
B
Blog
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
V
Vulnerabilities – Threatpost
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
L
LINUX DO - 热门话题
Recorded Future
Recorded Future

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
Snap! 中的 Dynamic Table 库
种瓜 · 2024-06-29 · via 夜行人

文章目录

前言

@梁博士 制作了一个桌面级模块化群控机器人系统, 取名"CoCube" (Collaborative-Cube), CoCube 将 MicroBlocks 用作其编程环境. CoCube 与 toio 有许多相似的特性, 也有一些 toio 不具备的能力, 如可扩展的硬件接口, 以及与 MicroBlocks 更紧密的结合. 近期 @梁博士 打算使用这款机器人参加中美青年创客大赛, 邀请 MicroBlocks 团队成员参与其中, John Maloney 让我代表团队参与.

为了将 GPT-4o 的能力带给 CoCube, 我打算将 Snap! 用作 CoCube 的上位机, 这样我就可以将之前在这方面的工作迁移到 CoCube 身上. 在解析 CoCube 顶部二维码的过程中, 我发现它基于 ArUco, 与 Dynamic Table 使用的是同一套 marker 系统!

因此只需要实现在 Snap! 中实现 Dynamic Table 库, 就可以将其用于解析 CoCube 的空间位置.

当心灵和手不默契,艺术将不存在 – 达·芬奇

在设计这样一个系统时,我们使用的一个隐喻是乐器,比如长笛,它是用户拥有的,并对用户的愿望作出即时和一致的响应。想象一下,在吹出一个音符和听到它之间的一秒钟的延迟是多么荒谬! – Alan Kay & Adele Goldberg 《Personal Dynamic Media》

Dynamic Table 围绕在一张桌子上对实物进行编程的想法构建. 这篇文章 对其做了详细介绍.

来看一些演示视频:

技术层面, 使用了 ArUco 来标识这些自制卡片, 演示视频使用的编程环境是 Scratch + CodeLab Adapter

由于我们已经有了运行在 Snap! 中的 Python 解释器, 我打算让 Snap! 中的 Dynamic Table 库运行在纯浏览器环境中, 如此一来, 不仅提高了开箱可用性, 而且可以运行在移动设备上!

Snap! 中的 Dynamic Table 库

示例项目(点击运行)

FAQ

如何打印 ArUco marker ?

这里提供了一份 30 张的版本:

你可以从 arucogen 里打印(建议从编号1开始)

提升性能

我在 CodeLab 分享了这个工作, 最初的性能比较弱, fps 只有 8 左右.

@禾牧 提醒说:

之前我测了下在 Snap! 里用 Python 拓展处理图片,瓶颈主要在图片转 base64 以及 base64 转图片,计算过程很快

根据 @禾牧 的提示, 我进行了相关部分的优化, 将 DynamicTable 的性能提升了 3 倍左右, fps 达到了 30:

如何将其转化为标准的 Snap! 库?

目前 Dynamic Table 库 已成为了 Snap! 中文版 内置库.

更多细节参考 如何将其转化为标准的 Snap! 库?

参考