我目前正在研究用于GPS导航的简单小型卡尔曼滤波器.我从GPS传感器获取当前位置,航向角和速度.因此,卡尔曼滤波器应融合当前测量值和从前一位置开始的线性运动,假设速度和航向角恒定.
我的问题是选择一个有用的空间,卡尔曼滤波器能够以良好的方式执行.
局部坐标系方法:
如果我选择一个本地坐标系(北[米],东[米]),并且先前的位置在原点,我将能够轻松预测新位置,但如何将新测量(纬度/经度)转换为我的本地坐标系统使用wgs-84椭圆体?以及如何使用wgs-84椭圆体将我在本地坐标系中的新预测转换为纬度/经度?
所以我需要两个功能:
f:=(lat_ref,lng_ref,lat,lng) - >(x,y)
g:=(lat_ref,lng_ref,x,y) - >(lat,lng)(这也可以使用Vincenty完成)
全球坐标系方法:
我找到了Vincenty算法,它根据任何椭圆体上的参考位置,距离和路线角度计算新位置.这个算法工作正常但我没有看到如何在kalman滤波器中使用这个算法,该滤波器在全局坐标系中工作.
有什么想法或建议如何解决我的一个问题?
我在玩 aop 和 aspectj 并发现了一个(对我来说)意外的行为。
在aspectj-docs 中,我发现了以下示例切入点:
execution(public void Middle.*())
Run Code Online (Sandbox Code Playgroud)
对于以下类定义(我稍微更改了原始示例):
class Super {
public void m() { ... }
}
class Middle extends Super {
}
class Sub extends Middle {
@Override
public void m() { ... }
}
Run Code Online (Sandbox Code Playgroud)
该示例的描述指出:
[切入点] 挑选出返回 void 并且没有在 Middle 中声明或继承的参数的公共方法的所有方法执行,即使这些方法在 Middle 的子类中被覆盖。
这个例子是工作为我好,但如果类Sub不重写m(),该方法通话从外到m上Sub-instance不拦截。这不违反文档吗?
我在继承类中的切入点还有另一个问题,这是由使用代理引起的。但是在这种情况下,代理的使用不会导致这种行为,因为代理应该为所有被代理的类提供方法。还是我错过了什么?
我的方面定义:
@Aspect
public class MyAspect {
@Before(value = "execution(* Middle.*(..))", argNames="joinPoint") …Run Code Online (Sandbox Code Playgroud) CoreData属性的setter是否保留?或复制价值或什么是二传手?我想知道是否必须(自动)释放我放入setter的值.
我已经做了一些快速测试.假设以下型号:
+----------+
| Class A |
+----------+
| v :int32 |
+----------+
Run Code Online (Sandbox Code Playgroud)
生成的ManagedObject然后如下所示:
//A.h
@interface A : NSManagedObject
{
}
@property (nonatomic, retain) NSNumber * v;
//...
//A.m
@implementation A
@dynamic v;
...
Run Code Online (Sandbox Code Playgroud)
好的,属性标记为retain,因此如果我将NSNumber设置为v,则应保留NSNumber.但它不是(我认为).我做了以下事情:
A *a = ... ;
NSNumber *retainCheck = [[NSNumber alloc] initWithInt:23];
NSLog(@"retainCheck1: %i",[retainCheck retainCount]);
a.v = retainCheck;
NSLog(@"retainCheck2: %i",[retainCheck retainCount]);
NSLog(@"retainCheck3: %i",[a.v retainCount]);
NSLog(@"pointer1: %#x",retainCheck);
NSLog(@"pointer2: %#x",a.v);
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
retainCheck1: 1
retainCheck2: 1
retainCheck3: 1
pointer1: 0x62f068
pointer2: 0x62f068
Run Code Online (Sandbox Code Playgroud)
两个NSNumber都是相同的NSNumber实例(相同的指针值 - >所以它没有复制或类似的那样),并且设置器似乎不保留NSNumber.
我做的...... 我的测试错了吗?或者NSManagedObject-setters的行为与标题中描述的不一样? …
我是 React JS 的新手。我有多个图标按钮。OnClick 我只想让单击的按钮更改其颜色。我使用了状态,但是当状态改变时,所有按钮的颜色都会改变。我应该采用什么方法?有没有一种方法可以在不使用状态的情况下改变颜色?需要钥匙或身份证吗?我提供的代码已被裁剪(意味着它仅包含我认为相关的部分)。
class Utilitybar extends React.Component {
constructor(props) {
super(props);
this.state = {
bgColor: "default"
};
}
render() {
return (
<div>
<IconButton color={
this.state.bgColor
}
onClick={
() => {
this.props.vidToggle();
if (this.state.bgColor === "default") {
this.setState({ bgColor: "primary" })
} else {
this.setState({ bgColor: "default" })
}
}
}>
<FaPlayCircle />
</IconButton>
<IconButton color={
this.state.bgColor
}
onClick={
() => {
this.props.fileToggle();
if (this.state.bgColor === "default") {
this.setState({ bgColor: "primary" })
} else {
this.setState({ bgColor: "default" …Run Code Online (Sandbox Code Playgroud) aspectj ×1
core-data ×1
iphone ×1
java ×1
material-ui ×1
math ×1
objective-c ×1
pointcut ×1
projection ×1
reactjs ×1
spring-aop ×1