开发了一个纯粹为了比赛的机器人功能

原本在开始工作之前,我想得是开发一个机器人应用(Skill),可以让HEXA能陪我外出散步,无论我想慢走或者是跑步,它都能跟上我的步伐。而当我停下的时候,HEXA也会停下来,它能根据我跑步的颠簸来调整他移动的快慢。

  但没想到我做出的功能展示给我的同事后,他们觉得这个功能可以用于HEXA之间的赛跑——没有人类什么事了!可惜,我以及我们公司只有一台HEXA,所以为了验证这个skill的实用性,我会尽快把它上传到Skill Store。希望有其他人来挑战我。

  好了,回归正题,来说说我怎么开发的。

  首先我按照官网的说明运行起来了“hello world”。通过这个skill我了解到skill的内部结构:两个文件夹(remote/robot),还有一个json文件(manifest.json)。我对golang和js都不是很熟,但是很快就找到了MIND SDK的hexabody库里面的WalkContinuously。

  “`

  func WalkContinuously(direction, speed float64) error

  “`

  我研究了一下它,发现真正掌握它还得边尝试边摸索,后边会说到具体问题。

  我google到了js的一个库(library)(deviceMotion),它可以用来获取到手机的摇摆速度(shake speed)。我把其中相关的代码搬到了remote文件夹下面的html里面,并且在里面添加了一个简单的html page(一个开始按钮,一个定时器,一个label用来展示摇晃手机的速度)。接下来使用MIND SDK里面的(sendData/OnRecvString)方法实现了js和golang的交互,传递一个speed value给WalkContinuously function,speed value的大小会控制hexa行走速度的快慢。

  在这个过程中我遇到了一些困难,比如说官网并没有给WalkContinuously/sendData/sendJSON提供参数(parameter)说明和示例,导致我无从得知机器人的最大速度值和其他两个方法的使用场景。还有在执行mind build命令的时候,无法正常执行,我是通过重启docker才得以恢复正常。

  不过最终结果还挺有意思的,你只需要甩甩手机,HEXA就会开始向前爬。你甩得越迅速,HEXA爬得越快。可以想像如果我有两台HEXA,我会和同事竞赛,看谁控制的HEXA会跑赢。而我之前期待的带着HEXA去森林散步则遇到了困难,因为除非我选了一条没有“陷阱”的直线在走,否则HEXA自己会选择一条它的路。我得不时回头看着它摔进树坑,翻下路基,我变成了机器人保姆(自愿的)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值