我很感兴趣,卡尔曼滤波器中的传感器融合设置中的双输入是如何建模的?
比如说你有一个加速度计和一个陀螺仪,想要呈现"地平线",就像在飞机上一样,这里有类似这样的好演示.
你如何实际收获两个传感器的正面特性并最大限度地减少负面影响?
这是在观察模型矩阵(通常用大写字母H表示)中建模的吗?
备注:在math.stackexchange.com上也没有任何答案地问过这个问题
我写了一个简单的Activity,它是SensorEventListenerfor Sensor.TYPE_ACCELEROMETER.
在我的onSensorChanged(SensorEvent event)i中,只需选择X,Y,Z格式的值并将其写入文件.
除此之外还有X,Y,Z一个标签,该标签特定于我正在执行的活动.所以这是X,Y,Z,label
像这样,我获得了我的活动资料.希望对数据收集后要执行的操作提出建议,以便消除噪音并获取活动的最佳数据.
此数据收集的主要目的是使用神经网络库(NeuroPh for Android)Link构建用户活动检测应用程序.
有两种方法可以获得3个旋转值(方位角,俯仰,滚动).
一个是注册TYPE_ORIENTATION类型的监听器.这是最简单的方法,我从每次旋转中得到正确的值范围,如文档所示:azimuth:[0,359] pitch:[ - 180,180] roll:[ - 90,90]
另一个,你第一次看到它时最精确和最复杂.Android推荐它,所以我想使用它,但我得到不同的值.
方位角:[ - 180,180].-180/180是S,0 i N,90 E和-90 W.
pitch:[ - 90,90 ].90为90,-90为-90,0为0但-180/180(屏幕向下)为0.
roll:[ - 180,180].
我应该得到相同的值,但有小数,对吧?
我有以下代码:
aValues = new float[3];
mValues = new float[3];
sensorListener = new SensorEventListener (){
public void onSensorChanged (SensorEvent event){
switch (event.sensor.getType ()){
case Sensor.TYPE_ACCELEROMETER:
aValues = event.values.clone ();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
mValues = event.values.clone ();
break;
}
float[] R = new float[16];
float[] orientationValues = new float[3];
SensorManager.getRotationMatrix (R, null, aValues, mValues);
SensorManager.getOrientation (R, orientationValues);
orientationValues[0] …Run Code Online (Sandbox Code Playgroud) 我希望能够在我的应用程序中使用一个相当简单的跌倒检测算法.在onSensorChanged()中,我得到当前x,x,z值的绝对值,并从中减去SensorManager.GRAVITY_EARTH(9.8 m/s).结果值必须连续10次大于阈值以设置表示加速度计已检测到下降的标志,阈值约为8m/s.
此外,我正在比较阈值已经通过时手机的方向和当阈值不再通过时它的方向,这设置了另一个标志,表示方位传感器已经检测到下降.
当两个标志都设置好后,就会发生一个事件来检查用户是否正确等等.我的问题在于阈值,当手机直接保持时,加速度计的绝对值约为9.8米/秒,但当我保持静止时在某个角度它可以超过15米/秒.这导致其他事件触发跌倒检测,如果我增加阈值以避免这种情况,则不会检测跌倒.
任何人都可以在这里给我一些建议,我应该使用哪些可能的值或如何改进我的方法?非常感谢.
我用NDK更快地搜索了关于轮询加速度计的教程/答案,但还没找到求解器.刚刚在这里找到了androiddevelopers文档.
我需要的是轮询加速度大约每秒100个样本(100Hz),默认情况下我的设备(三星Galaxy SL i9003与姜饼2.3.5)默认SENSOR_DELAY_FASTEST只能获得大约60个样本persecond(60Hz).因此,我尝试通过生成.c文件,通过NativeActivity访问传感器,我试图基于sensor.h和looper.h制作.c文件:
#include <jni.h>
#include <string.h>
#include <android/sensor.h>
#include <android/log.h>
#include <android/looper.h>
#define TAG "accelerondk"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
#define LOOPER_ID 1
#define SAMP_PER_SEC 100 //i've changed to 120, even 10, but nothing happen
void Java_azka_web_ndk_AcceleroNDKActivity_startMonitoring(JNIEnv* env, jclass clazz) {
ASensorManager* sensorManager = ASensorManager_getInstance();
ALooper* looper = ALooper_forThread();
if(looper == NULL)
looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);
ASensorRef accelerometerSensor = ASensorManager_getDefaultSensor(sensorManager,ASENSOR_TYPE_ACCELEROMETER);
LOGI("accelerometerSensor: %s, vendor: %s", ASensor_getName(accelerometerSensor), ASensor_getVendor(accelerometerSensor));
ASensorEventQueue* queue = ASensorManager_createEventQueue(sensorManager, looper, LOOPER_ID, …Run Code Online (Sandbox Code Playgroud) 我使用USB将Arduino连接到我的笔记本电脑,我可以使用Processing读取串行数据.
有没有办法将这些数据实时传输到本地webbrowser?例如,一个显示串口值的文本字段?它不必连接到互联网.
JavaScript版本的Processing不支持以下代码,这可能是理想的解决方案.
处理代码是:
myPort = new Serial(this, Serial.list()[0], 9600);
// read a byte from the serial port
int inByte = myPort.read();
// print it
println(inByte);
// now send this value somewhere...?
// ehm...
Run Code Online (Sandbox Code Playgroud) 我正在开展一个真正需要访问环境光传感器的项目.
我在Google和Stackoverflow中搜索了很多,但找不到任何有用的信息.甚至可以这样做吗?
我还尝试通过计算相机输入的亮度来计算环境光值,但结果并不十分精确,因为相机会对图像进行大量调整,从而使结果失真.
我的问题非常简单直接.是否有任何技术可以通过它来计算使用Android设备的人的心跳.
我用Google搜索并发现了一些使用相机实现它的结果.
任何其他想法或帮助将受到高度赞赏.
谢谢.
我正在使用此代码中的示例程序http://sicktoolbox.sourceforge.net/ > http://sourceforge.net/projects/sicktoolbox/files/.它基本上是一个距离扫描仪驱动程序.我想要运行的程序是在sicktoolbox-1.0.1/c ++/examples/lms/lms_plot_values中,以防你想看到我正在谈论的代码.
无论如何,lms_plot_values项目文件夹包含gnuplot_i.cc,gnuplot_i.hpp,main.cc,Makefile,Makefile.am,Makefile.in.所以我把前三个文件放在我的Eclipse Indigo CDT中,编译(没有编译错误,一切都已经在Eclipse中正确链接,并且添加了所有需要的库),但是这个示例程序被编写为接受命令行参数.这是代码得到的.
/*!
* \file main.cc
* \brief Illustrates how to acquire a measurements from the Sick
* LMS 2xx using the configured measuring mode.
*
* Note: This example should work for all Sick LMS 2xx models.
*
* Code by Jason C. Derenick and Thomas H. Miller.
* Contact derenick(at)lehigh(dot)edu
*
* The Sick LIDAR Matlab/C++ Toolbox
* Copyright (c) 2008, Jason C. Derenick and Thomas H. Miller
* All rights …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个可嵌入的Java库,它适用于以通用方式收集传感器数据的实时流.我计划使用它来开发一个"集线器"应用程序,用于报告在基于JVM的服务器上运行的多个不同的传感器流(也将使用Clojure).
需要关键的事情:
是否有适合您可以推荐的此配置文件的内容?
sensor ×10
android ×5
orientation ×2
ambient ×1
android-ndk ×1
arduino ×1
c++ ×1
command-line ×1
data-stream ×1
detection ×1
eclipse-cdt ×1
filter ×1
fusion ×1
heartbeat ×1
ios ×1
java ×1
javascript ×1
light ×1
native ×1
processing ×1
real-time ×1