FlySense On-board computer
The on-board computer performs five major functions:
- State estimation: The data coming from the sensing system is processed to extract valuable information. This information coming from various sources is then fused together in an estimator using one of the following algorithms (Kalman Filter, Bayesian Networks etc.) to obtain the position, attitude, velocity, and acceleration of the helicopter and sensor errors.
- Mapping and Localization: Localization is performed completely using GPS and is used to build a 3D map of the surrounding area. 3D maps are built using the point cloud information and updated in real time based on the localization information.
- Flight envelope calculation: The control inputs from the pilot, the estimated states and underlying dynamics of the helicopter are used to calculate the current flight envelope.
- Obstacle identification: Based on the 3D map, the obstacles in the environment are identified and the environment is segmented into different zones (safe, alert, and dangerous). Obstacle identification is of primary interest here, especially to address the tail rotor issue. Environment segmentation is planned only for the future upgrades like overlay and flight path planning.
- Dynamic window calculation: Based on the current flight dynamics, the dynamic window is calculated and obstacles inside the dynamic window are labelled based on proximity.
Implementation Updates: We currently have ROS nodes for the Mapping from the LIDAR, State Estimation from the DJI phantom and flight envelope calculation under development with preliminary versions running on our Jetson TK1.
We have also gotten odometry data from the Quad and NEA datasets and are using that to place the aerial vehicle inside the map we are developing.
We have also defined a lot of the system architecture software on the Jetson, which is diagramed in the following flow charts: