小编Ali*_*Ali的帖子

学习传感器融合的最佳书籍,特别是有关IMU和GPS集成的书籍

我需要从以下传感器构建惯性测量单元(IMU):

  • 加速度计
  • 陀螺仪
  • 磁力仪

我必须整合这些数据,以得出传感器平台的姿态和所涉及的外力(例如,从线性加速度中减去倾斜).

然后,我必须使用这些信息来补充标准的GPS单元,以提供比仅由GPS提供的更一致的测量.

我确实理解这个问题的基本要求:

  • 集成传感器.(取消噪音,减去加速度).
  • 消除噪音.(卡尔曼滤波器)
  • 将IMU测量集成到GPS中.

虽然目前有各种各样的图书馆可供我这样做(http://code.google.com/p/sf9domahrs/)我需要了解所涉及的机制,以便我能够向其他人解释这些技术在我实施解决方案之后.

我一直在寻找以下资源,但我不确定我应该去哪...我需要一些内容涉及传感器融合,过滤,IMU,集成.

多传感器,融合,一体化,智能化的系统

定位的系统,惯性导航集成

机电一体化,智能化的系统 - 越野车数据

自主飞行机器人,无人驾驶汽车

我希望在这方面有经验的人可以提供任何建议.

非常感谢.

physics sensor accelerometer gyroscope kalman-filter

12
推荐指数
1
解决办法
8752
查看次数

为什么我得到pthread_mutexattr_settype的未定义引用?

我正在尝试编译和链接Novell LDAP C SDK中的示例文件,但由于pthread库中有3个未解析的符号,链接失败.我在Ubuntu 13.10(Saucy)上使用gcc 4.8.1.我已将pthread库正确地包含在命令行中的最后一个库中,但这些特定符号仍未解析.

$ gcc -Wl,-trace-symbol=pthread_mutexattr_settype -Wl,-trace-symbol=pthread_mutexattr_init   -Wl,-trace-symbol=pthread_mutex_trylock  -o search search.o -L../lib -lldapsdk -lpthread

../lib/libldapsdk.so: reference to pthread_mutexattr_settype<br>
../lib/libldapsdk.so: reference to pthread_mutexattr_init<br>
../lib/libldapsdk.so: reference to pthread_mutex_trylock<br>
/lib/i386-linux-gnu/libpthread.so.0: definition of pthread_mutexattr_settype<br>
/lib/i386-linux-gnu/libpthread.so.0: definition of pthread_mutexattr_init<br>
/lib/i386-linux-gnu/libpthread.so.0: definition of pthread_mutex_trylock<br>
../lib/libldapsdk.so: undefined reference to pthread_mutexattr_settype<br>
../lib/libldapsdk.so: undefined reference to pthread_mutex_trylock<br>
../lib/libldapsdk.so: undefined reference to pthread_mutexattr_init<br>
collect2: error: ld returned 1 exit status

$ readelf --all  /lib/i386-linux-gnu/libpthread.so.0|grep pthread_mutexattr_settype<br>
   114: 00009d90    36 FUNC    GLOBAL DEFAULT   13 pthread_mutexattr_settype@@GLIBC_2.1<br> …
Run Code Online (Sandbox Code Playgroud)

c linux gcc shared-libraries linker-errors

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

便携式终端(换行)

它一直是一个令人不快的意外'\n' 被替换"\r\n"在Windows上,我不知道.(我猜它也在Mac上被替换了......)

有没有一种简单的方法可以确保Linux,Mac和Windows用户可以轻松地交换文本文件?

简单来说,我的意思是:无需以二进制模式编写文件或自行测试和替换行尾字符(或使用某些第三方程序/代码).此问题会影响我的C++程序执行文本文件I/O.

c++ portability fstream cross-platform newline

11
推荐指数
3
解决办法
8804
查看次数

如何启动文件/目录/ URL的关联应用程序?

Linux似乎很简单:xdg-open <file/directory/URL>.

显然,Mac是相似的:open应该用来代替xdg-open.我无法访问Mac,因此无法测试它.

对于Windows,我发现了4个不同的建议,而我尝试过的建议失败了.

我已经尝试的第一个3 system()QProcess::startDetached(),并"http://www.stackoverflow.com"作为参数,但都失败了; start但是从命令行工作得很好.我还没有尝试过ShellExecute.

什么是Windows相当于xdg-open在我看来,这是start为什么我的尝试start失败了?

ShellExecute我唯一的选择吗?


编辑我认为QDesktopServices::openUrl()仅适用于网页,因为它不适用于文件或目录.

一些调试后,我想通了,如果我取代\\/在Windows上的路径,它适用于文件,但该目录还没有打开.我有什么想法我做错了吗?

QDir dir("C:/Documents and Settings/ali");

qDebug() << "Exists? " << dir.exists();

qDebug() << dir.absolutePath();

QDesktopServices::openUrl(QUrl(dir.absolutePath()));

qDebug() << …
Run Code Online (Sandbox Code Playgroud)

c++ winapi qt cross-platform shellexecute

11
推荐指数
1
解决办法
7159
查看次数

由rvalue指定的三元表达式不使用移动分配运算符

任何人都知道为什么以下代码无法编译:

[hidden]$ g++ -v |& tail -n 1
gcc version 4.8.1 20130603 (Red Hat 4.8.1-1) (GCC)
[hidden]$ cat c.cpp
struct X {
  X() = default;
  X(const X&) = default;
  X(X&&) = default;
  X& operator=(const X&) = delete;
  X& operator=(X&&) = default;
};

void f(bool t) {
  X a, b;
  (t ? a : b) = X();
}

[hidden]$ g++ -std=c++11 -c c.cpp
c.cpp: In function ‘void f(bool)’:
c.cpp:11:15: error: use of deleted function ‘X& X::operator=(const X&)’
   (t ? a : …
Run Code Online (Sandbox Code Playgroud)

c++ gcc c++11

11
推荐指数
1
解决办法
394
查看次数

图表中的最佳路径以最大化值

我正在尝试为这个问题提出一个合理的算法:

假设我们有很多地方.我们知道每对位置之间的距离.每个位置也有一个点.目标是在从起始位置行进到目的地位置时最大化点的总和而不超过给定的距离量.

这是一个简单的例子:起始位置:C,目的地:B,给定距离量:45 在此输入图像描述

解决方案:CAB路线有9分

我只是好奇是否存在某种针对此类问题的动态算法.对于那个问题,什么是最好的,或者最简单的方法?

任何帮助是极大的赞赏.

编辑:您不能多次访问同一位置.

algorithm graph mathematical-optimization dynamic-programming

11
推荐指数
1
解决办法
1270
查看次数

如何在R中使用带参数的函数

我试图在R中使用optim函数 - 我对此没有任何问题:

funk=function(param){
  x=c(1,2,3,4,5)
  z=c(3,4,2,2,1)
  y=c(30,40,22,33,40)
  a=rep(param[1],5)
  b=param[2]
  d=param[3]
  fit=sum((y-(a+b*x+z*d))^2)
  return(fit)
}

optim(par=c(1,1,1),fn=funk)
Run Code Online (Sandbox Code Playgroud) #

但是一旦我不想将我的数据(x,y,z)硬编码到函数中我就会遇到问题.当函数输入不仅仅是要优化的参数时,如何优化函数优化?理想情况下,我会传递xx,zz,yy的值然后优化,然后移动到xx,zz,yy的不同值并接下来优化该情况.

xx=c(1,2,3,4,5)
zz=c(3,4,2,2,1)
yy=c(30,40,22,33,40)

funk=function(param,x,y,z){
  a=rep(param[1],5)
  b=param[2]
  d=param[3]
  fit=sum((y-(a+b*x+z*d))^2)
  return(fit)
}

optim(par=c(1,1,1),fn=funk(param=c(0,0,0),x=xx,y=yy,z=zz))
Run Code Online (Sandbox Code Playgroud)

(函数(par)中的错误:找不到函数"fn"

r mathematical-optimization

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

如何比quicksort更快地对整数数组进行排序?

用numpy的快速排序对整数数组进行排序已经成为我算法的瓶颈.不幸的是,numpy还没有 基数排序.虽然计算排序将是numpy中的单行:

np.repeat(np.arange(1+x.max()), np.bincount(x))
Run Code Online (Sandbox Code Playgroud)

看到我如何对这个python计数排序进行矢量化的接受答案,以便它绝对尽可能快?问题,我的应用程序中的整数可以运行02**32.

我坚持使用quicksort吗?


这篇文章的主要动机是使用itertools.groupby性能 问题进行 Numpy分组.
另请注意, 提出并回答您自己的问题不仅可以,而且明确鼓励.

python sorting algorithm performance numpy

11
推荐指数
1
解决办法
1369
查看次数

调试 Modelica 模型的结构奇异并最小化非线性

我构建了一个 Modelica 模型,但是在检查模型时(这是模型下载链接),它显示了一个局部奇点,如下面的屏幕截图所示。 在此处输入图片说明

所以我删除了错误消息中显示的代码。

h[3]=(hout+hl)/2
Run Code Online (Sandbox Code Playgroud)

但尽管模型检查良好,但存在导致初始化失败的强烈非线性问题。

在此处输入图片说明 在此处输入图片说明

所以我尝试删除以下代码行:

h[1]=(hin+hv)/2
Run Code Online (Sandbox Code Playgroud)

并且模型不仅检查而且没有初始化问题。

在此处输入图片说明

我的问题是:

  1. 在调试模型奇点时,Dymola 显示的错误信息可能不是模型的奇点来源?有没有找到奇点问题根源的通用方法?或者我必须手动分析模型中的方程?
  2. 如何最小化Modelica模型的非线性并保证收敛?我发现这个问题存在于很多领域,尤其是在热工水力模型中,我发现处理这个问题的一种方法是使用Modelon 的 Thermao Power LibraryThermoSysPro for EDF 的方式,这两个库划分模型或连接器分为流量和体积两种。为了确保收敛,它需要使用交错网格方案,如下面的屏幕截图所示。

    那么有没有另一种方法来处理热工水力模型中的非线性问题呢?关于如何处理热工水力模型中的非线性问题,是否有共同的看法?

在此处输入图片说明

modelica dymola

11
推荐指数
0
解决办法
257
查看次数

如何通过Eclipse将'-pthread'选项添加到g ++?

我正在使用eclipse编译多线程库.

如何在eclipse对g ++的调用中添加-pthread或-pthreads选项?

eclipse gcc g++

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