zm0612/eskf-gps-imu-fusion

gps位置是lla形式,是在NED(坐标系)?

Closed this issue · 5 comments

您的介绍里面说GPS的经纬高是NED坐标系是什么意思?ECEF坐标系,就是经纬高讶?

zm0612 commented

你好,目前代码进行了重构,坐标系进行了统一,使用的NED。

GPS是使用的经纬高(lla)的形式!

@zm0612 您好,您是如何进IMU坐标系转换到NED坐标系的,具体在代码哪里有体现吗?如何使用轮式里程计进行融合原理是相通的吧。谢谢

zm0612 commented

@wf-hahaha hello,在我的代码里面初始时默认是以东北天为初始位姿的,IMU的测量数据是body相对于地心惯性系的测量在body系上的表示,无法直接转换到NED坐标系,需要利用IMU的姿态解算原理迭代的求解。

另外,你说的使用轮式里程计融合,我不是很明白,你想融合轮式里程计的哪些数据,如果只是把轮式里程计的速度加入的话,可以把里程计的速度当做一个观测,融合系统的速度就是完全可观了。

@wf-hahaha hello,在我的代码里面初始时默认是以东北天为初始位姿的,IMU的测量数据是body相对于地心惯性系的测量在body系上的表示,无法直接转换到NED坐标系,需要利用IMU的姿态解算原理迭代的求解。

另外,你说的使用轮式里程计融合,我不是很明白,你想融合轮式里程计的哪些数据,如果只是把轮式里程计的速度加入的话,可以把里程计的速度当做一个观测,融合系统的速度就是完全可观了。

@zm0612 谢谢您快速的回复!
1、那IMU的姿态解算原理迭代的求解在您代码中有体现吗,有相关的额参考资料吗。因为一直不太理解怎么转换的。
2、是的,我是想用轮式里程计的速度,然后统一使用NED坐标系进行表示,求出每个时刻下机器人在NED坐标系下的偏航角。

zm0612 commented

@wf-hahaha

IMU的姿态解算,我的代码里面有:

void ErrorStateKalmanFilter::UpdateOdomEstimation(const Eigen::Vector3d &w_in) {

如果你想更深入和细致的了解IMU姿态解算的原理,可以参考书籍:《捷联惯导算法与组合导航原理》严恭敏。这本书需要比较复杂的数学知识,可以先配合一些博客的内容先学习一下IMU的姿态解算,有一定基础之后,看这本书系统的学习一下。

轮式里程计的速度是在body坐标系下的,和IMU是一样原理,根据实时位姿解算,然后把body系的车速转到NED坐标系即可进行后续的计算。