找回密码
 注册

微信登录

微信扫一扫,快速登录

查看: 1001|回复: 15

[其他] 万能家电版,,专业问题又来了。。。

[复制链接]
发表于 2013-1-11 16:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
本帖最后由 sobranie_1 于 2013-1-11 15:50 编辑

MATLAB问题

比如我现在手头有一组GPS点的数据,是汽车传感器记录下来的,比如a(14.56  ,  51.33)b(14.57  ,  51.66)这样子,每秒记录一次,一组数据有20个点这样,我该如何用这些点的位置来判断出汽车是处于直行呢还是转弯呢??行驶方向可以通过2个点的经度纬度分别相减来判别。

之前我的算法太幼稚太NAIV了,我在判断出汽车的方向后,分别给这8个方向代入了1个数,比如东北方向是3,西南是5,然后来判断汽车是左转还是右转还是直行,说穿了就是根据汽车的行驶方向改变来判断。像这样的算法只能判定非常典型的十字路口转弯,因为90°变向嘛,但是有些特定情况就不行了,但是比如汽车从东北10°往东北70°转弯,我的程序就不知道了,因为方向没变。

现在我是想用斜率的变化率来判别汽车是否直行还是转弯,但是觉得很复杂,还在思考中,

有人能给我随便出个点子吗??一个思路也好。


Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2013-1-11 16:47 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 16:53 | 显示全部楼层
你都有行驶方向了,怎么会计算不出转向.....
不过你行驶方向的计算也太粗糙了.....

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 17:07 | 显示全部楼层
本帖最后由 老湿不给力 于 2013-1-11 16:29 编辑

建立一个puffer,每获得一个gps数据,就把纬度坐标除经度坐标,把结果跟puffer里的数据比较,如果相同就是直行,如果不同就表示汽车拐弯了,然后把最新的数据存到puffer里,让下一组再来比较。
a(14.56  ,  51.33)b(14.57  ,  51.66)
a: 51.33/14.56=3.525
b: 51.66/14.57=3.545
基本可以判断车子拐了

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 17:10 | 显示全部楼层
本帖最后由 JonnySun 于 2013-1-11 23:29 编辑

这是我的第一想法:直走的话各坐标的变化率应该大体相同,或者说在一个Toleranz里,你可以用类似即时变化值和平均变化值相比,时间单位10秒一个间隔(如果GPS更新够快),不超过最大变化值为直行,超过最大变化值数值为正则是左拐,反之又拐,若是反向行使的话就用另外一个大case倒过来判断,有必要的话要建立矩阵来模拟GPS坐标

想法2:两坐标建立向量,求夹角,然后你直接设一个边界角度,绝对值大于了就是拐弯了,正负判断左右拐弯

v1=[14.57-14.56 , 51.66-51.33];%示范一下,具体赋值和获取值需要你自己规划
v2=[X-14.57 , Y-51.66];
aa = acos(dot(v1, v2)/(sqrt(sum(v1.^2))*sqrt(sum(v2.^2))));
aa = angle(complex(14.57-14.56 , 51.66-51.33)) - angle(complex(X-14.57 , Y-51.66)) ;
subspace(v1', v2')

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 17:18 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 17:48 | 显示全部楼层
总得有个定义吧,什么时候算abbiegen,什么时候只能算是kurve?

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 21:52 来自手机 | 显示全部楼层
劈马甲 发表于 2013-1-11 16:48
总得有个定义吧,什么时候算abbiegen,什么时候只能算是kurve?

还有换道也得考虑

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 22:53 | 显示全部楼层
就是一串向量啊,第二个向量(a+b)减去第一个向量(a)=(b),然后求(a)(b)夹角就可以了
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2013-1-11 22:56 | 显示全部楼层
然后嫩这个最好先Extrapolation一下,然后把之前采样点和extrapolieren出来的点做一下smooth,好补偿GPS的误差

或者用别的算法也可以

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-5-16 03:37 , Processed in 0.100407 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表