RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
trilateration.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
3  * 2020 Freie Universität Berlin
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser General
6  * Public License v2.1. See the file LICENSE in the top level directory for more
7  * details.
8  */
9 
24 #ifndef TRILATERATION_H_
25 #define TRILATERATION_H_
26 
27 #include <inttypes.h>
28 
29 #include "matrix.h"
30 
53 void trilateration1(uint8_t anchor_num,
54  matrix_t anchor_pos_matrix[anchor_num][3],
55  matrix_t pseudo_inv_matrix[4][anchor_num],
56  matrix_t homog_sol_arr[],
57  matrix_t dist_arr[],
58  matrix_t solution_x1[],
59  matrix_t solution_x2[]
60  );
61 
81 void trilateration2(uint8_t anchor_num,
82  matrix_t anchor_pos_matrix[anchor_num][3],
83  matrix_t dist_arr[],
84  matrix_t solution_x1[],
85  matrix_t solution_x2[]);
86 
96 void trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3],
97  matrix_t A_matrix[m][4]);
108 void trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[],
109  matrix_t anchor_pos_matrix[anchor_num][3],
110  matrix_t b_vec[]);
111 
124  matrix_t pseudo_inv_matrix[4][3],
125  matrix_t b_arr[],
126  matrix_t particular_solu_arr[]);
127 
140 void trilateration_get_particular_solution(uint8_t m, uint8_t n,
141  matrix_t anchor_pos_mat[m][n],
142  matrix_t dist_arr[], matrix_t Xp[]);
143 
154 uint8_t trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num,
155  matrix_t anchor_pos_matrix[anchor_num][3],
156  matrix_t Xh[]);
169  matrix_t particular_solu_arr[],
170  matrix_t homogeneous_solution_arr[],
171  matrix_t solution_x1[],
172  matrix_t solution_x2[]);
173 
186 void trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num,
187  matrix_t pseudo_inv_matrix[line_num][col_num],
188  matrix_t b_vec[], matrix_t sol_vec[]);
189 
190 #endif /* TRILATERATION_H_ */
trilateration_get_A_matrix
void trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4])
Computes the matrix of the equation system: .
Definition: trilateration.c:256
trilateration_get_b_vector
void trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[])
Computes the vector of the equation system: .
Definition: trilateration.c:275
trilateration_get_quadratic_equation_solution
void trilateration_get_quadratic_equation_solution(matrix_t particular_solu_arr[], matrix_t homogeneous_solution_arr[], matrix_t solution_x1[], matrix_t solution_x2[])
Solve a quadratic equation.
Definition: trilateration.c:193
matrix.h
Matrix computations.
trilateration_preprocessed_get_particular_solution
void trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[])
Compute the particular solution, which is the general solution of .
Definition: trilateration.c:121
trilateration_solve_linear_equation
void trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[])
Solve a linear equation.
Definition: trilateration.c:291
trilateration_get_rank_and_homogeneous_solution
uint8_t trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[])
Compute the rank and the solution of the homogeneous system .
Definition: trilateration.c:149
trilateration2
void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])
Implement the trilateration algorithm.
Definition: trilateration.c:69
trilateration_get_particular_solution
void trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[])
Compute the particular solution, which is the general solution of .
Definition: trilateration.c:179
matrix_t
#define matrix_t
Define the data type of the matrix elements.
Definition: matrix.h:38
trilateration1
void trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])
Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix.
Definition: trilateration.c:32