Project

General

Profile

Discussion on DFNs integrationinterfaces » History » Revision 14

Revision 13 (Quentin Labourey, 2018-04-12 10:05) → Revision 14/18 (Quentin Labourey, 2018-04-12 17:38)

h1. Discussion on DFNs interfaces 

 This page is a discussion to fix once and for all the interfaces and the way DFNs are going to be release inside the InFuse repo. I'll develop the example of DEM as it is the only DFPC that is "ready" at the moment. But I'm pretty sure that this can be generalized easily. For a reminder, the different DFNs of the DEM building DFPC can be found "here":https://drive.google.com/drive/u/1/folders/0B-snyoPgDrt5QmNlT0NOOUpsdHM (diagram DFPC_DEM_BUILDING.html). 

 So the DEM DFPCs contains 3 DFNs: 
 * PcTransform to transform the point cloud from sensor frame to world frame 
 * Rasterizer to project the cloud on a cartesian grid 
 * MapFuser to fuse it into our internal grid 

 At the moment the three DFNs + the ASN1 layer are in the same library. However, it is important to separate ASN1 from core as ASN1 might not always be the communication standard. A way to do this is to build 2 libraries as follows: 

   
   

 !Libraries.png! 

   

 This way, libatlaas.so (or .a, but I think .so makes more sense here) contains the code of the three DFPC, while libatlaasASN1.so contains interfaces in ASN.1. It can be easily tested in ROS, in different ways. I think the way that makes more sense is a separate nodes with the DFN classes as attributes, as follows: 

   

 !libraries_ROS.png! 

   

 The advantage with this is that it separates clearly the different layers, and make it easy to write something that tests the different DFNs (e.g. I wrote 1 ROS node per DFN, making the stacking easy, the whole DEM DFPC can actually be put in one rosnode/genom3 module to accelerate/not spam the network with data). 

 h1. Integration with InFuse archi 

 The way DFNs are integrated in InFuse relies on the DFNCI, as shown below: 

   

 !infuse_archi.png!