热门搜索 :
考研考公
您的当前位置:首页正文

HEXA娱乐开发日志技术点000——整理&第一个Skil

来源:东饰资讯网

整理

本项目的基本调研结束,把技术点与具体需求整理如下。

需求与技术依赖关系

需求与技术依赖关系本阶段的目的是验证调研阶段的结论,并对每个技术点进行demo,本阶段结束后,再进一步进行详细的设计。针对上图,demo的顺序从Mind SDK开始,顺着图中箭头依次进行。

Mind SDK

要能够实现简单HEXA应用部署

Golang

要达到移植弹幕姬的编程水平

移植弹幕姬

要能获取弹幕

C/C++动态库使用与OpenCV

运行官方的OpenCV demo

RTMPDUMP

要能对有效地址进行推流,可以先不带stream key

标题解释

Skill实际上就是官方对于应用的称呼,一个应用就称作一个Skill。

简单说一下Skill的原理,我理解这个HEXA机器人实际上是以B/S模式工作的,即控制端(手机或电脑)使用浏览器,机器人作为服务器,我们通过网页元素与之交互。后面可以看到,一个Skill的目录结构中的文件主要是一个网页文件和一个go源码文件,前者是服务器发给控制端的网页,让我们通过浏览器与机器人交互,后者决定机器人的控制逻辑。

提要

1.官方文档是英文的,我这里用中文;

2.官方也是开始阶段,有些地方说明还是有些坑的,我写出来提醒后来者。

成果展示

请注意一下最下方的log,有successful, Connected这种字样,就说明这个应用已经部署到机器人上面了,下一个问题就是如何运行这个应用了。

Mind Studio

按照上面log指示,在浏览器中输入红框里那个网址,就可以看到一个仅有2个按钮的网页。这时候熟悉Web前端的同学应该能容易的看出,上面IDE图中就是网页的代码,和下面的网页图是对得上的。即使不懂网页代码,我们也可以根据网页里代码字面猜一下:

"start"...onclick()...senddata...data:"start"

"stop"...onclick()...senddata...data:"stop"

不难猜到,两个按钮意思是,在点击时会发送数据。我们在电脑上点击按钮,理所当然是发送给机器人咯,发送的data就是start和stop两种命令。

上位机网页

上面这个网页成功打开后,机器人就会做出对应的行为。当然,机器人做了啥不重要,我也没看代码,不能确认它做的对不对,重点在于它确实能对我点击按钮这件事有响应,说明这次程序部署是有效的。

demo步骤

一、官方步骤

官方步骤我没有完整验证,我的步骤主要使用的IDE,比较简单,希望用IDE的同学可以直接到后面看我的步骤。

1.安装Docker

2.安装Mind SDK

这步很简单,在控制台中输入下面两句,即下载SDK并增加SDK主程序的执行权限。

$ sudo chmod +x /usr/local/bin/mind

3.更新依赖库

这一步看不出在更新什么,官网说是更新Docker容器,以及一些需要的库等,总之是不更不行,因为后面不管干啥,都要先更新,这一步是跳不过的。

$ mind upgrade

要注意的是,这一步很慢,可能要几到几十分钟,控制台会显示正在下载几项内容,已经下了多少。如果网速很慢有可能会觉得它卡死了,不过我也不知道有什么别的办法,还是得等。

4.登陆

这一步我不知道有什么用,先照做就是了。

$ mind login <邮箱> <密码>

5.创建Skill

从这一步开始,创建自己的Skill,比如创建一个helloworld。

$ mind init helloworld

$ cd helloworld

下面2个命令很好理解,就是编译和打包,当你把代码撸完,就可以进行开始下面的动作了。

$ mind build  # Will build an ARM binary into robot/skill

$ mind pack    # Will pack the Skill as an mpk file.

6.部署

现在,上位机的工作基本完成了,下面就是真正的部署了。

$ mind scan

10.0.0.51 HEXA

10.0.0.76 HEXA4XMZ

不难看出,scan就是找出局域网内的所有HEXA机器人,官方这个例子扫出了2台,他们的ip和名字都不同。

$ mind set-default-robot HEXA4XMZ

$ mind get-default-robot # Just to be sure

HEXA4XMZ

$ mind run

set-default-robot顾名思义,就是设置默认的机器人,我们得确定一会儿玩的是哪一台机器人,get-default-robot就是问一下目前要被玩的机器人是哪台。

run执行后,这个Skill机会被部署到机器人里面,并开始运行了,顺利的话,控制台里也能看到像成果展示里IDE一样的log,也会有一个地址,浏览器打开它就可以使用应用了。

二、我的步骤

我是趟过了一些小坑,就因为我先打开的是官方的IDE网页,而不是官方文档网页。我以为IDE一下载,跑一下官方例子,应该就是点几个按钮的事,结果被坑住几下,后来看到官方文档页面,照做几步才顺利进行,下面就是我的步骤和坑点。

Mind Studio

1.安装Docker和IDE安装与登陆

如果没有安装Docker,也能打开IDE,只是基本不能用,很多关键操作会提醒你检查Docker状态。也就是说,如果你像我一样先打开了官方IDE那个页面,装好了IDE就连接机器人时,如果对Docker一无所知,立刻得懵逼,这就是第一个坑

2.更新依赖库

这一步同官方步骤3,也是用upgrade命令。

但是要注意,IDE安装的Mind SDK与官方步骤中安装的位置不同,在Mac平台,我找到的SDK的主程序在

/Applications/MIND Studio.app/Contents/Resources/mind-Darwin-x86_64

如果觉得我还没有讲清楚的话就直接敲下面的命令,如果遇到permission问题就在命令最前面加上sudo

$ cd /usr/local/bin

$ ln -s <SDK主程序路径> mind

3.build and run Skill

这就是第二个坑,因为如果傻天真的以为IDE可以傻瓜式操作,就会在点界面上那个小红框里的运行按钮时卡住,没有任何反馈,就在那卡着。就像命运经常无缘无故地改变或停滞,没有谁有义务告诉你为什么。

入这个坑就是因为没有做步骤2,只要完成了步骤2,这一步就很顺利。

从结果上看,我觉得如果有耐心,卡住的时候,只要一直等待,也可能完成,因为我猜那个时间实际上就是在更新。

总结

1.机器人工作模式为B/S,我们是B,它是S;

2.我的demo步骤比较简单,大部分工作由IDE完成,自己只要安装Docker和更新依赖库即可。


Top