TODO list
parent
d126fc8f24
commit
0fabfc39c2
|
@ -37,8 +37,8 @@ if useRealisticValues == 1
|
||||||
omegaFixed = [0;0;0]; % constant rotation rate measurement
|
omegaFixed = [0;0;0]; % constant rotation rate measurement
|
||||||
accelFixed = [0.5;-0.5;0]; % constant acceleration measurement
|
accelFixed = [0.5;-0.5;0]; % constant acceleration measurement
|
||||||
g = [0;0;0]; % Gravity
|
g = [0;0;0]; % Gravity
|
||||||
initialVelocity = [0;0;0]; % initial velocity
|
initialVelocity = radiusEarth * omegaEarthSeconds [vector.. is a cross product, wee wiki link] ; %[0;0;0]; % TODO % initial velocity
|
||||||
initialPosition = [4509997.76107; 4509997.76107; 3189050]; % initial position
|
initialPosition = [4509997.76107; 4509997.76107; 3189050]; % initial position (Earth radius 6371 km)
|
||||||
else
|
else
|
||||||
omegaRotatingFrame = [0;0;pi/300]; % rotation of the moving frame wrt fixed frame
|
omegaRotatingFrame = [0;0;pi/300]; % rotation of the moving frame wrt fixed frame
|
||||||
omegaFixed = [0;0;0]; % constant rotation rate measurement
|
omegaFixed = [0;0;0]; % constant rotation rate measurement
|
||||||
|
@ -60,7 +60,7 @@ currentPoseFixedGT = Pose3(Rot3, Point3(initialPosition));
|
||||||
currentPoseRotatingGT = currentPoseFixedGT; % frames coincide for t=0
|
currentPoseRotatingGT = currentPoseFixedGT; % frames coincide for t=0
|
||||||
currentVelocityFixedGT = initialVelocity;
|
currentVelocityFixedGT = initialVelocity;
|
||||||
%
|
%
|
||||||
epsBias = 1e-15;
|
epsBias = 1e-20;
|
||||||
sigma_init_x = noiseModel.Isotropic.Sigma(6, 1e-10);
|
sigma_init_x = noiseModel.Isotropic.Sigma(6, 1e-10);
|
||||||
sigma_init_v = noiseModel.Isotropic.Sigma(3, 1e-10);
|
sigma_init_v = noiseModel.Isotropic.Sigma(3, 1e-10);
|
||||||
sigma_init_b = noiseModel.Isotropic.Sigma(6, epsBias);
|
sigma_init_b = noiseModel.Isotropic.Sigma(6, epsBias);
|
||||||
|
@ -70,9 +70,9 @@ zeroBias = imuBias.ConstantBias(zeros(3,1), zeros(3,1)); % bias is not of intere
|
||||||
IMU_metadata.AccelerometerSigma = 1e-5;
|
IMU_metadata.AccelerometerSigma = 1e-5;
|
||||||
IMU_metadata.GyroscopeSigma = 1e-7;
|
IMU_metadata.GyroscopeSigma = 1e-7;
|
||||||
IMU_metadata.IntegrationSigma = 1e-10;
|
IMU_metadata.IntegrationSigma = 1e-10;
|
||||||
IMU_metadata.BiasAccelerometerSigma = 1e-5;
|
IMU_metadata.BiasAccelerometerSigma = epsBias;
|
||||||
IMU_metadata.BiasGyroscopeSigma = 1e-7;
|
IMU_metadata.BiasGyroscopeSigma = epsBias;
|
||||||
IMU_metadata.BiasAccOmegaInit = 1e-10;
|
IMU_metadata.BiasAccOmegaInit = epsBias;
|
||||||
|
|
||||||
%% Initialize storage variables
|
%% Initialize storage variables
|
||||||
positionsInFixedGT = zeros(3, length(times));
|
positionsInFixedGT = zeros(3, length(times));
|
||||||
|
@ -228,9 +228,7 @@ for i = 1:length(times)
|
||||||
currentBiasKey-1, currentBiasKey, ...
|
currentBiasKey-1, currentBiasKey, ...
|
||||||
currentSummarizedMeasurement, g, omegaCoriolisIMU, ...
|
currentSummarizedMeasurement, g, omegaCoriolisIMU, ...
|
||||||
noiseModel.Isotropic.Sigma(15, epsBias)));
|
noiseModel.Isotropic.Sigma(15, epsBias)));
|
||||||
else
|
% TODO: prior on biases?
|
||||||
error('imuSimulator:coriolisExample:IMU_typeNotFound', ...
|
|
||||||
'IMU_type = %d does not exist.\nAvailable IMU types are 1 and 2\n', IMU_type);
|
|
||||||
end
|
end
|
||||||
|
|
||||||
% Add values to the graph. Use the current pose and velocity
|
% Add values to the graph. Use the current pose and velocity
|
||||||
|
@ -378,3 +376,18 @@ zlabel('Z axis')
|
||||||
axis equal
|
axis equal
|
||||||
grid on;
|
grid on;
|
||||||
hold off;
|
hold off;
|
||||||
|
|
||||||
|
% TODO: logging rotation errors
|
||||||
|
for all time steps
|
||||||
|
Rerror = Rgt' * Restimated;
|
||||||
|
% transforming rotation matrix to axis-angle representation
|
||||||
|
vector_error = Rot3.Logmap(Rerror);
|
||||||
|
norm(vector_error)
|
||||||
|
|
||||||
|
axis angle: [u,theta], with norm(u)=1
|
||||||
|
vector_error = u * theta;
|
||||||
|
|
||||||
|
% TODO: logging velocity errors
|
||||||
|
velocities..
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue