2013-03-14 54 views
2

我正在开发一款应用程序,通过沿其边缘转向Sphero机器人球来映射房间。Sphero:多个数据集的异步数据流

为此,我需要三个数据集从SPHERO汽车无流的(机器人)的应用程序:

  • Collission检测,检测的角落里面去“内部”房间
  • 定位数据知道在哪里检测到的角落是
  • Sphero移动到一边结合驾驶向边缘倾斜一点,以检测到“室外”的角落。

我的碰撞检测和定位器数据流的实现工作没有问题,但有几个关于加入流动移动数据的问题。

第一个大问题是如何做到这一点,因为定位器数据和移动数据以同样的方式通过异步数据流传输。当我有电子邮件联系到Sphero的支持时,这个问题已经得到解答:

通过链接几个数据流掩码,通过按位或(|)在SetDataStreamingCommand中声明,可以配置Sphero同时传输多个数据集。

不过,我仍然打开的问题:

  1. 我打算使用速度-x掩模为运动数据,将这个数据被SPHERO相对(运动为90°至驱动的角度方向)还是世界相对的(如定位器速度数据)?

  2. velocity-x数据将存储在传递给侦听器的事件数据中的位置?

感谢之前对你的答案

回答

1

的速度x值是定位器的一部分,所以它是相对于定位网格的速度。

当你把数据传回在AsyncDataListener,你可以在同一个LocatorData找到值对象时使用的定位器信息:

LocatorData#getVelocityX():float 

像这样:

data.getVelocityX(); 

这一次但是,这些值实际上会包含信息而不是零,因为您之前曾在SetDataStreamingCommand中要求速度。

+0

好的,谢谢你的回答。然后我将不得不通过加速度计数据获取我需要的信息(我认为这应该是sphero相对的)。 – oxygen0211 2013-03-15 09:02:24