心渐渐失空

导航

DDL vector机器人 oskr使用教程

简介:

在DDL接手anki的vector机器人事业之后,发起了大量的众筹和软硬件售卖。其中我最感兴趣的是oskr和escape-pod。

oskr是开放vector机器人的权限,用户可以ssh远程登录到vector机器人的操作系统上,进行各自操作。并且DDL将机器人上面跑的部分程序代码(go语言代码)开源,用户可以进行修改编译后再替换到机器人上面运行,以实现自己的功能。

escape-pod是可以将vector机器人连接的语音云端地址修改掉。并且官方提供了一些开源代码和工具 来帮助用户实现和部署自己的云服务,以脱离官方的云服务。

有了这2个功能权限,vector开放给用户更多的权限,官方开源了一些代码。vector机器人就有更多的可玩性,用户可以实现自己想要的功能。当然,这两个权限都是要花钱购买的,买完之后好多人不知道怎么使用。其实还需要主动通过发邮件的方式,让官方帮忙制作 指定机器人 拥有oskr和escape-pod权限的固件(也叫升级包/安装包,就是解锁了权限的操作系统+应用软件整套)。收到官方回复后,下载固件安装到自己的机器人上。自己的机器人就是一个解锁过的机器人,可以玩oskr和escape-pod功能了。

解锁方式可以参考官方文档:https://oskr.ddl.io/oom/

关于oskr和escape-pod的最新动态可以参考oskr官网:https://oskr.ddl.io/

开源代码可以在github上下载:https://github.com/digital-dream-labs

官方在gitlab上的开源项目分为几种类型:

  0.c/c++语言项目,vector机器人上运行的核心引擎,和驱动对接,向上游go服务提供能力接口。

  1.go语言项目,编译后可以替换到vector上运行。

  2.js语言项目,运行在自己电脑上的web页面程序,一般是一些工具。

  3.公共库,其他项目会来调用,或者用来做测试的。

oskr:

以下是vector机器人上运行的子程序列表,分别实现了不同的功能,组成了完整的vector机器人功能。

 

 

 

以下是我在我的机器人上面列出来的进程列表,可以看到各个进程的存在:

 

 

其中箭头指向的2个是已经开源了的程序,代码在上面的github上。

 2023-10-24更新:

替换官方提供的新程序到vector上,就可以脱离官方语音云,而连接到自己的服务器:

 

 

上图中的资源:

本地云服务镜像下载地址:https://support.digitaldreamlabs.com/article/358-launching-your-escape-pod-2

机器人内部程序/anki/bin/vic-gateway和/anki/bin/vic-cloud下载地址:https://github.com/digital-dream-labs/vector-cloud/releases/tag/v1.0.0

链接成功后,就可以开始阅读源码并开始尝试修改源码实现功能了

 参考文档:

https://support.digitaldreamlabs.com/category/367-launching-your-escape-pod

https://support.digitaldreamlabs.com/article/350-oskr-users-pi-flashing-for-the-escape-pod

https://randym32.github.io/Anki.Vector.Documentation/index.html

后续更新......

搭建逃生舱:

 

1.搭建本地云服务运行,让vector连上

 官方的教程是购买一个树莓派(小型电脑),然后把官方提供的img镜像文件复制到内存卡上,再将内存卡插入树莓派启动。img镜像内包含了本地云服务。树莓派可以放在家里长期运行。

img镜像文件:是一个以.img为后缀名的raw文件,可以理解为把硬盘按字节拷贝到一个文件里。硬盘是3.8GB左右,所以这个img文件也是3.8GB左右。可以当成一个硬盘的内容。把这个文件再拷贝回内存卡,树莓派就可以通过这个内存卡启动起来并自动运行里面的程序。下载地址:https://support.digitaldreamlabs.com/article/358-launching-your-escape-pod-2

树莓派:一个嵌入式电脑,把所有硬件(CPU、内存、显卡等)都放在一张身份证大小的卡片上,使用SD卡当硬盘。所以可以将Img复制到SD卡上,再插上去就能运行。

对于不想购买树莓派的人来说,通过虚拟化软件,也能模拟出一个树莓派来,我平时玩游戏多,所以用的是windows操作系统,尝试了VMware、virtuaBox来跑官方提供的img,都没跑通。查阅资料后发现:

树莓派的CPU架构是ARM的,而VMware、virtuaBox只能模拟本机的CPU架构的硬件,也就是intel的x86/x64架构(复杂指令集)。最终找到了一篇文章介绍可以使用qemu模拟树莓派Pi 3B+主板(https://zhuanlan.zhihu.com/p/452590356),于是我发现了qemu原来有windows版本的:

1.在windows下载最新的qemu:https://qemu.weilnetz.de/w64/2023/qemu-w64-setup-20230822.exe

2.点击下载的安装包qemu-w64-setup-20230822.exe进行安装

3.安装后路径是在C:\Program Files\qemu下,将qemu-system-***所在的路径添加到系统环境变量path中,这样在cmd运行qemu命令就不用加全路径了。(qemu-system-***是一个虚拟化软件,可以模拟各种硬件架构运行虚拟机,而本次要通过qemu-system-aarch64.exe模拟树莓派3 B+,并在上面运行vector的逃生舱img)

4.下载模拟树莓派需要的内核文件(我不清楚树莓派为什么都有img了还需要内核文件)并解压:https://github.com/dhruvvyas90/qemu-rpi-kernel/archive/refs/heads/master.zip

5.修改img文件大小:由于img文件只是硬盘的前3.8GB内容,硬盘后面的内容是空的,所以没写到img中。但是运行虚拟机的话,硬盘需要按官方要求的大小>8GB,运行命令修改img的大小:qemu-img.exe resize D:\anki_robot\ubuntu-20.04.4-escape-pod-1.8.2.img 8G

6.运行cmd命令启动虚拟机(替换命令中的文件路径为你本地电脑对应文件所在的路径):

qemu-system-aarch64.exe  -machine type=raspi3b  -m 1024  -dtb D:\anki_robot\qemu-rpi-kernel-master\native-emulation\dtbs\bcm2710-rpi-3-b.dtb -kernel "D:\anki_robot\qemu-rpi-kernel-master\native-emulation\5.4.51 kernels\kernel8.img" -drive id=hd-root,format=raw,file=D:\anki_robot\ubuntu-20.04.4-escape-pod-1.8.2.img -append "'rw earlycon=pl011,0x3f201000 console=ttyAMA0 loglevel=8 root=/dev/mmcblk0p2 fsck.repair=yes net.ifnames=0 rootwait memtest=1 dwc_otg.fiq_fsm_enable=0"  -serial stdio -netdev user,id=net0  -usb -device usb-kbd -device usb-tablet  -device usb-net,netdev=net0

如果报错了,那大概率是你的这几个文件路径和我电脑的不一样,上面这条命令中需要你本地有这4个文件:

qemu-system-aarch64.exe:安装qemu之后就有,执行上述1、2、3步

bcm2710-rpi-3-b.dtb:上述第4步下载的

5.4.51 kernels\kernel8.img:上述第4步下载的

ubuntu-20.04.4-escape-pod-1.8.2.img:从vector官网下载的img(https://support.digitaldreamlabs.com/article/358-launching-your-escape-pod-2)

如果没报错,那你大概能看到虚拟机启动的全过程,如果出现kernel panic了(未知原因),就退了重新运行一次:

启动成功后,显示linux的登录界面,输入官方提供的账号密码即可登录:

 账号:ubuntu          密码:ubuntu

重置密码为自己设定的密码后进入系统:

 查看逃生舱服务进程和文件:

 切换到root用户,查看网络监听端口:

 

为树莓派添加了usb网卡,但是镜像不支持usb网卡驱动;为树莓派添加网卡,发现树莓派没有pci总线。。。放弃树莓派。

从镜像中提取出escape-pod程序,然后就可以放在正常机器上运行了:

 https://github.com/chenhongjun/escape-pod-linux-arm64

 

 

2.调整代码实现一些验证性功能,搭建交叉编译环境完成编译

 

3.尝试实现自己的功能(中文语音、chatgpt等)

 

4.整体分析原理并整理文档

 

posted on 2021-03-03 13:58  心渐渐失空  阅读(2035)  评论(2编辑  收藏  举报