Firefly Eindhoven - Localization - Verax: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
==Working principle==
==Working principle==
1) Hardware system: LEDs, fisheye camera, jetson, find LEDs
2) Describe general PnP problem: locate camera with n camera points
3) Introduction to the OPnP algorithm and general steps, including step to Groebner basis solver


==Implementation==
==Implementation==
Since a regular implementation on either the GPU or CPU of the MATLAB code by making use of MATLAB's embedded C/GPU coder does not meet the performance requirements, the software has to be ported to a lower level language that makes use of GPU accelerated libraries to fully utilize the Jetsons hardware. Since Rogier lacked the expertise to port the code and did not have time to fully look into this, Daan and Johan were tasked with porting the MATLAB code and achieve an update rate of approximately 30 Hz.


===Linear Algebra===
===Linear algebra===
The automatically generated OPnP algorithm (thus an implementation of the Groebner basis solver) has two main function calls that limit its performance:
* The solving of a linear system <math> Ax = b </math> with dimensions of A (
*
Parts that are required for the Groebner basis solver: matrix inversion/solving linear system and eigenvector solver


===Software===
===Software===
1) GPU coder
2) C coder
3) Armadillo (C++ with Lapack)
4) CUSolve for solving the linear system
5) Paper with CUDA pseudocode
6) MAGMA

Revision as of 11:08, 22 May 2018

Working principle

1) Hardware system: LEDs, fisheye camera, jetson, find LEDs 2) Describe general PnP problem: locate camera with n camera points

3) Introduction to the OPnP algorithm and general steps, including step to Groebner basis solver

Implementation

Since a regular implementation on either the GPU or CPU of the MATLAB code by making use of MATLAB's embedded C/GPU coder does not meet the performance requirements, the software has to be ported to a lower level language that makes use of GPU accelerated libraries to fully utilize the Jetsons hardware. Since Rogier lacked the expertise to port the code and did not have time to fully look into this, Daan and Johan were tasked with porting the MATLAB code and achieve an update rate of approximately 30 Hz.

Linear algebra

The automatically generated OPnP algorithm (thus an implementation of the Groebner basis solver) has two main function calls that limit its performance:

  • The solving of a linear system [math]\displaystyle{ Ax = b }[/math] with dimensions of A (

Parts that are required for the Groebner basis solver: matrix inversion/solving linear system and eigenvector solver

Software

1) GPU coder 2) C coder 3) Armadillo (C++ with Lapack) 4) CUSolve for solving the linear system 5) Paper with CUDA pseudocode 6) MAGMA