标签: gyroscope

我们可以在陀螺仪给出的两点之间在android画布上绘制线条吗?

是否可以通过相机在Android中从A点(用户首先触摸)和B点(用户触摸第二个)绘制一条线.

用户可以触摸第一个点并沿其他方向旋转相机以点击第二个点.

我正在使用gyroscope,accelerometermagnetometer(传感器融合)我在触摸时得到x,y,z坐标.

但是我们可以在用户触摸的画布上绘制3D图像.类似于MagicPlan应用正在做的事情.

android accelerometer gyroscope android-canvas

22
推荐指数
1
解决办法
1080
查看次数

使用Core Motion获取加速度计数据的位移

我正在开发一种增强现实应用程序(目前)想要在表面上显示一个简单的立方体,并且能够在空间中移动(旋转和移位)以在所有不同角度观察立方体.校准相机的问题在这里不适用,因为我要求用户将iPhone放在他想要放置立方体的表面上,然后按下按钮以重置姿势.使用陀螺仪和核心运动来查找相机旋转非常简单.我是这样做的:

if (referenceAttitude != nil) {
    [attitude multiplyByInverseOfAttitude:referenceAttitude];
}

CMRotationMatrix mat = attitude.rotationMatrix;

GLfloat rotMat[] = {
    mat.m11, mat.m21, mat.m31, 0,
    mat.m12, mat.m22, mat.m32, 0,
    mat.m13, mat.m23, mat.m33, 0,
    0, 0, 0, 1
};

glMultMatrixf(rotMat);
Run Code Online (Sandbox Code Playgroud)

这非常有效.当我试图在加速期间找到空间位移时,无论如何都会出现更多问题.带有Core Motion的Apple Teapot示例只是将加速度矢量的x,y和z值添加到位置矢量.这(除了没有多大意义)具有在加速之后将对象返回到原始位置的结果.(因为加速度从正到负,反之亦然).他们这样做了:

translation.x += userAcceleration.x;
translation.y += userAcceleration.y;
translation.z += userAcceleration.z;
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能找出某些加速度的加速度位移?(已知时差).看一些其他的答案,似乎我必须整合两次以从加速度获得速度,然后从速度获得位置.但是代码中没有任何例子,我认为这不是必要的.此外,还有一个问题是,当iPhone仍在飞机上时,加速度计值不为空(我认为有一些噪音).我应该过滤多少这些值?我应该过滤掉它们吗?

iphone accelerometer augmented-reality ios4 gyroscope

19
推荐指数
3
解决办法
2万
查看次数

如何创建新的CMAttitude参考框架以使重力位于Y轴上

我希望能够更改设备运动管理器参考框架(用于陀螺仪),以便我的重力矢量在Y轴上.

通常,当您启动Device Motion Manager更新时,您只能使手机的z轴与重力对齐.

您可以更改此项以使用磁力计使x轴与磁北极或真北极对齐.有了这个,我的X轴指向北方,我的Z轴指向下方.

我想要做的是让我的Y轴(负)指向下方(使其与重力对齐)并使我的X轴指向真正的磁极.

我想要的结果是,当我的手机静止在垂直(纵向)方向时,手机的右侧将与北极对齐,我的所有读数(滚动,俯仰,偏航)将读为0.然后使用如果我在X轴上旋转手机,音高会改变,如果我绕Y轴旋转,偏航会改变.

到目前为止,我知道我可以设置自己的参考框架,如果我乘以先前存储的态度的倒数,(就像我可以手动设置我的手机这种方向,保存这种态度,并简单地将新态度乘以逆这个存储的一个和我的所有读数将完全像我想要的那些).

但是手动设置它不是一个选项,所以我如何以编程方式进行此操作?

我不认为有一个函数来创建我自己的态度参考框架,或者如果至少有一个函数将态度乘以旋转矩阵,那么我可以解决这个问题.(因为我只是将所有态度乘以90度的音高变化).

我希望我能清楚地解释清楚,

我将不胜感激任何建议.谢谢

PD:这些是iPhone Orientation坐标:

在此输入图像描述

iphone xcode gyroscope core-motion

19
推荐指数
1
解决办法
8971
查看次数

iPhone陀螺仪 - 为什么连接YAW和PITCH?

我有一个非常简单的应用程序,我试图通过核心运动使用陀螺仪.

此时,出于测试目的,我只是抓住滚动,俯仰和偏航的值以及在屏幕上打印.根据下面的图片,据我所知,滚动,俯仰和偏航对应于红色,绿色和蓝色轴,对吗?

好.当我将iphone放在靠左侧的桌子(右侧的主页按钮)上时,完全相对于桌面平面成90度,这些是我读取的滚动,俯仰和偏航的值:-90,0, 0.然后我开始按照桌子的垂直轴以逆时针方式旋转iPhone,根据工作台垂直轴,它将在正方向上旋转.在iPhone上,这意味着一个音高旋转,但是当我旋转时,音高保持不变,而YAW则会改变!!!

如果iPhone放在桌子的左侧,则绿色轴(音高)是垂直的.如果我在X上逆时针(正向)旋转设备,我应该看到俯仰角增加,而不是偏航.

我对此的唯一解释是,旋转设备时陀螺仪轴不会旋转.因此,如果我使用默认态度参考,iPhone会认为面朝上静止位置是默认位置,蓝色轴(偏航)将始终是垂直位置.它是否正确?

这是我正在使用的代码......

在主要代码上

motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1.0/60.0; //60 Hz
[motionManager startDeviceMotionUpdates];


timer = [[NSTimer scheduledTimerWithTimeInterval:(1.0/60.0) 
          target:self
    selector:@selector( readIt )
userInfo:nil
 repeats:YES]
 retain];
Run Code Online (Sandbox Code Playgroud)

剩下的代码

#define degrees(x) (180.0 * x / M_PI)

- (void) readIt {

//  CMAttitude *referenceAttitude;
    CMAttitude *attitude;

    CMDeviceMotion *motion = motionManager.deviceMotion;        
    if (!motion) {
        return;
    }

    attitude = motion.attitude;

    NSLog(@"roll = %f... pitch = %f ... yaw = %f", degrees(attitude.roll), degrees(attitude.pitch), degrees(attitude.yaw));


}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

iphone gyroscope

15
推荐指数
1
解决办法
1万
查看次数

集成陀螺仪和加速度计读数

可能重复:
组合陀螺仪和加速度计数据

我已经阅读了很多论文Kalman filters,但似乎没有什么好的公开可访问的工作实例从数学论文到实际工作代码.

我有一个系统,包含一个三轴加速度计和一个陀螺仪测量围绕其中一个加速度计轴的旋转.该系统设计为由人控制,并且陀螺仪将在很大程度上测量围绕重力矢量或靠近重力矢量的旋转.(在同一行业工作的人可能会认识到我正在谈论的内容;))我意识到这是不受约束的.

陀螺仪似乎具有接近恒定的偏差,对于系统的每个实例略有不同.如何在系统倾斜时使用加速度计读数来校准陀螺仪,以便陀螺仪轴与重力不共线,并围绕陀螺仪轴旋转,我将如何编码滤波器以使用加速度计读数来校准陀螺仪?似乎应该有足够的信息来做到这一点,但被告知没有,为什么会是一个答案:)

robotics signal-processing gyroscope kalman-filter

14
推荐指数
2
解决办法
2万
查看次数

iPhone 5/5th Gen iPod Touch的加速度计/陀螺仪限制的变化?

当iPhone 4和第4代iPod Touch问世时,我正在玩Apple的Core Motion传感器融合算法,看看我是否可以获得任何有趣的结果,用于非常局部的航位推算(在几英寸或几英尺的范围内).鉴于MEMS传感器的规格相对较低,我没想到会有什么惊人之处.虽然Apple的CMDeviceMotion gravity财产使用了一种不错的(虽然是不透明的)传感器融合算法,但补充userAcceleration属性并不完全针对航位推算.尽管如此,我认为可能还有足够的乐趣.

iPhone 4,iPhone 5,第4代iPod Touch和第5代iPod Touch显然都使用STMicroelectronics LIS331DLH加速度计和L3G4200D陀螺仪.(实际上,我还没有看到iTouch-5陀螺仪的部件号,所以可能会有所不同.)

拆解:iPhone-4,iTouch-4,iPhone-5,iTouch-5

ST规格表明,加速度计可以在1000 Hz时采样,最高可达±8g.该陀螺仪可以800 Hz的频率采样,最高可达±2000 dps.

规格:LIS331DLH,L3G4200D

但是,使用我的第4代iPod Touch(iOS 5和iOS 6),我只能将采样率调高到100 Hz.如果我设置CMMotionManager deviceMotionUpdateInterval低于0.01,它会自动重置为0.01.同样的accelerometerUpdateIntervalgyroUpdateInterval.

此外,加速度计输出似乎总是限制在±2g左右.

我已经看到其他人对iPhone 4的类似界限发表评论.

这两个界限严重限制了我可以挤出设备的局部加速度计算(试验我的第四代iPod touch).我认为Apple已将这些限制设置为低,以降低功耗.虽然我不知道它们是设置在硬件中,还是设置在iOS中的某个地方.

有没有人在iPhone 5或第5代iPod Touch上使用这些加速度计和陀螺仪界限?(或任何iPad?)任何高于100赫兹的采样率?任何加速度计测量超出±2g的范围?

iphone accelerometer ipod-touch ios gyroscope

14
推荐指数
2
解决办法
2万
查看次数

使用Android检测用户活动(跑步,骑车,驾驶)

使用我的Android设备如何检测用户是走路,骑自行车还是开车?我查看了Google健身应用.它区分跑步,骑自行车和驾驶.我很困惑我应该用什么算法来区分这些活动.

我知道我必须使用加速计传感器.但我仍无法区分这些活动.

android accelerometer gyroscope android-sensors

14
推荐指数
2
解决办法
2万
查看次数

iOS:3D空间中的移动精度

据我了解,GPS的准确性有限.是否有可能为3D空间中的人获得更精确的位置?

我打算编写一个应用程序,用户可以在任何方向上移动手机,但只需要移动几英尺.是否有任何技术,可能使用加速度计和陀螺仪来实现这种精确度?

例如,用户将电话保持平坦(使得电话的底部与地板平行).屏幕上有一些东西,当人向前,向后和左右移动时,它不会随着屏幕移动.因此,对象看起来是不可移动的,并且只有通过将电话放在3D空间中的正确位置才能发现.

我不需要任何人编写一些代码,只要简单地了解一下,如果通过一些努力工作,这甚至是可能的.

谢谢!

德里克

iphone gps accelerometer ios4 gyroscope

13
推荐指数
2
解决办法
2万
查看次数

iOS Gyroscope API

我正在学习使用iOS中的陀螺仪传感器编写应用程序.对于加速度计,是否存在类似于UIAcceleration/UIAccelerometer/UIAccelerometerDelegate的陀螺仪处理类?

iphone objective-c ipad ios gyroscope

13
推荐指数
2
解决办法
2万
查看次数

陀螺漂移在手机上

很多帖子谈论陀螺漂移问题.有些人说陀螺仪阅读有漂移,但也有人说整合有漂移.

  1. 原始陀螺仪读数有漂移[link].
  2. 积分有漂移[link](Answer1).

所以,我进行了一次实验.接下来的两个数字就是我得到的.下图显示陀螺仪读数根本没有漂移,但有偏移.由于偏移,整合是可怕的.所以似乎整合就是漂移,是吗? 在此输入图像描述

下图显示,当偏移减小时,积分根本不会漂移. 在此输入图像描述

另外,我进行了另一个实验.首先,我将手机固定在桌面上大约10秒钟.然后将其旋转到左侧然后恢复到后面.然后正确和返回.下图很好地说明了角度.我使用的只是减少偏移然后进行整合.

在此输入图像描述

所以,我最大的问题是,偏移是陀螺漂移(积分漂移)的本质吗?在这种情况下,可以使用互补滤波器或卡尔曼滤波器来消除陀螺漂移吗?

任何帮助表示赞赏.

mobile gyroscope

13
推荐指数
1
解决办法
2万
查看次数