The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Vincross

如何利用手机内置平衡仪来控制机器人行走方向

  •  
  •   Vincross · May 10, 2017 · 1892 views
    This topic created in 3293 days ago, the information mentioned may be changed or developed.

    Hello,大家 这个帖子的内容来自 Vincross (也就是我们自己)的开发者论坛。内容是一个拥有 HEXA 机器人的开发者开发的一个小应用,他使用手机的平衡仪控制 HEXA 行走的方向,例如把手机向着某个方向倾斜,机器人就会朝着那个方向爬过去(见 GIF 图)。原贴是英文的,我们觉得很有意思,所以把帖子翻译成中文。原贴链接就不贴了,怕犯规。 开发使用的是 Golang 语言。 特别说明:Vincross 拥有使用这个帖子的转载和宣传的权力。


    标题:Yet Another Controller

    by @za4AI

    在 HEXA 自带的手机 App 预装应用中,可以在一个类似 PS4 手柄的拨杆界面来遥控 HEXA 行动,能看到实时传回的画面。 我经常玩的一款无人机叫 AirDrone,在它的手机 App 中可以通过倾斜手机来控制无人机的飞行方向,那个功能真的很酷(有真实的操控感),所以自从我收到 HEXA 以来,我就想把那个功能移植过来。

    开发步骤

    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 函数指定头部方向,便可以根据参数自由行走。

    `hexabody.MoveHead(dir, 1)
    hexabody.WalkContinuously(0, speed)`
    

    3、网页端 MIND Remote 提供 JS SDK 基于 websocket 向 Robot 端发送数据,借用 html5 的 API (deviceorientation) 实时获取手机设备加速度,按照这个思路即可使用手机重力感应控制 HEXA 机器人。当然我需要对加速度数据进行计算使得变成服务端可读的参数,并针对操控性进行优化。

    window.addEventListener("deviceorientation", function(event){
        setMeter(-event.gamma, event.beta)
        computeDir(-event.gamma, event.beta)
        computeSpeed(-event.gamma, event.beta)
    })
    

    遇到问题

    但在开发过程当中我无法真正知道机器人的地理方向,因为 HEXA 头部的旋转角度是相对于身体旋转的,所以我猜 HEXA 机器人的前方是机器人身体的固定方向。 为此我专门请教了 MIND 的系统的开发者,他们给了我大致相同的回答。如果技术团队能在 MIND 文档标注一下 HEXA 的方向、角度原点,可以帮助开发者解决更多问题。

    (题外话,最后 @za4AI 提到的问题,我们已经修改了文档。)

    1 replies    2017-05-10 14:10:41 +08:00
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   907 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:27 · PVG 06:27 · LAX 15:27 · JFK 18:27
    ♥ Do have faith in what you're doing.