在全地形机器人HEXA 自带的手机 App 预装应用中,可以在一个类似 PS4 手柄的拨杆界面来遥控 HEXA 行动,能看到实时传回的画面。
我经常玩的一款无人机叫 AirDrone,在它的手机 App 中可以通过倾斜手机来控制无人机的飞行方向,那个功能真的很酷(有真实的操控感),所以自从我收到 HEXA 以来,我就想把那个功能移植过来。
今天研究了一下 HEXA 的开发文档,不难,打算试试。
开发步骤 Programming Procedure
1、拿到HEXA,首先查阅了Vincross官方文档MIND SDK,作为一个前端开发者,我对Golang不是很熟,然而我很快的运行一个Hello World项目,并使HEXA动了起来!太棒了~
Skill项目的代码分为两个部分,Robot端可以开发机器人的实体功能基于MIND Driver,Remote部分通过网页端发送数据与Robot交互。
2、MIND系统提供了丰富的API,其中hexabody可以操控机器人的身体,对我开发的Skill尤为重要,通过这些函数可以操纵HEXA的头部旋转和六支的动作,包括行走、站立、放松、获取方向、设计动作等等。
hexabody.WalkContinuously函数可以让HEXA按照指定的方向和速度不停地行走, 设置第一个参数为0,HEXA会随头部的转动自动改变行走方向。再通过hexabody.MoveHead函数指定头部方向,便可以根据参数自由行走。
3、网页端MIND Remote 提供JS SDK基于websocket向Robot端发送数据,借用html5的API (deviceorientation) 实时获取手机设备加速度,按照这个思路即可使用手机重力感应控制HEXA机器人。当然我需要对加速度数据进行计算使得变成服务端可读的参数,并针对操控性进行优化。
遇到问题:
但在开发过程当中我无法真正知道机器人的地理方向,因为HEXA头部的旋转角度是相对于身体旋转的,即HEXA机器人的前方是机器人身体的固定方向。
为此我专门请教了MIND的系统的开发者,确实如此。如果需要让HEXA在野外活动,可以安装GPS为其导航。如果能在MIND文档标注一下HEXA的方向、角度原点,可以帮助开发者解决更多问题。
欲了解更多,欢迎进入可编程全地形机器人HEXA技术社区:http://bss.csdn.net/m/topic/vincross