小编tho*_*mas的帖子

导航卡尔曼滤波器中的投影问题

我目前正在研究用于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滤波器中使用这个算法,该滤波器在全局坐标系中工作.

有什么想法或建议如何解决我的一个问题?

math projection coordinate-systems kalman-filter

7
推荐指数
1
解决办法
1769
查看次数

一个类的所有方法的切入点,包括继承的方法

我在玩 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(),该方法通话从外到mSub-instance不拦截。这不违反文档吗?

在继承类中的切入点还有另一个问题,这是由使用代理引起的。但是在这种情况下,代理的使用不会导致这种行为,因为代理应该为所有被代理的类提供方法。还是我错过了什么?

我的方面定义:

@Aspect
public class MyAspect {
    @Before(value = "execution(* Middle.*(..))", argNames="joinPoint") …
Run Code Online (Sandbox Code Playgroud)

java aspectj spring-aop pointcut

5
推荐指数
0
解决办法
2712
查看次数

Core Date属性的setter如何管理内存?

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的行为与标题中描述的不一样? …

iphone core-data objective-c

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

如何仅设置单击的 IconButton 的颜色 - ReactJS?

我是 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)

reactjs material-ui react-component

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