Tutorial

介绍

physical blocks 2.0,新的更新我们都将在这个版本是进行,physical blocks 1.0在未来将弃用。

使用 physical blocks,可以在一张桌子上对实物进行编程。

Windows 和 Mac 用户开箱可用。 Linux需要安装依赖(参考文末)

提醒

CodeLab Adapter版本 >= 3.7.3

参考:

积木介绍

可以从 arucogen 查询 ArUco marker id

Demo

入门案例

分享两个入门案例:

更多案例

FAQ

刷新率/FPS

在 MacOS(2.3 GHz Intel Core i5)下,大约达到10帧的刷新率

目前尚未发布的 Pro 版本大约是 20 帧的刷新率

可使用以下技巧观察刷新率:

与1.0版本的区别?

标记列表默认是字符串(序列化之后),可以随意与scrath积木组合(诸如xx包含xx积木),避免因为操作list引起的崩溃(诸如将list保存为变量)。

在2.0中,直到主动使用JSON parse积木解析后,它才称为列表。相关操作参考:json积木,也可参考前边的例子: physical-blocks2-spell-demo

此外2.0 只使用一个积木更新数据,提高标签存在的稳定性(也提高速度),其中一种典型的编程模式是: 在一次更新数据之后的积木都对应更新瞬间的视野状态。而不像1.0,每个积木都有各自瞬间的视野。

如何打印 Marker

我们提供了一份30张的版本:

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

更多细节参考CodeLab DynamicTable: 一个可实施的技术方案

默认的Marker支持250种不同类型(marker id)

默认是4X4_250(最多250种)的marker, 你可以选择:

  • 4x4_50(最多50种)
  • 4x4_250(最多250种)
  • 4x4_100(最多100种)
  • 4x4_1000(最多1000种)

选择之后请修改(推荐使用JupyterLab)插件里对应的代码(104行):

# aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_250)
aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_1000)

关于不同的marker数量决定了字典的大小,越小的数字,鲁棒性越好。

Linux 用户

Linux 用户需要手动安装 opencv-contrib-python(有系统依赖)。

树莓派用户

安装依赖系统

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt install libatlas-base-dev
sudo apt-get install qt4-dev-tools
sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103

之后安装opencv-contrib-python

  • pip3 install opencv-contrib-python==3.4.6.27