Wiki/beaglebone-remote-seismometer-node-lakshadeep

'''

BeagleBone Remote Seismometer Node
''' Project aims to develop a working prototype of remote seismometer using Beaglebone. The device will have web based interface for control and data display. It will be further integrated with Quake Catcher Network (QCN).

Name
Beaglebone Remote Seismometer Node

Description
Earthquakes are one of the most devastating natural disasters we have today. Hence its very important to monitor the data which can be used to predict these earthquakes. Quake Catcher Network (QCN) is one such initiative. It provides sensors to the interested users to connect to their computers. Data recorded by the sensor is then sent to the servers using BOINC client software. This project will act as an extension to the existing QCN project. Instead of users connecting sensor to their computers, sensor will be connected to Beaglebone black. In this way a complete independent system can be developed eliminating the need of the user computer. Following sections provides the software and hardware details for the proposed system prototype.

Software
Firmware for the the system will be developed uisng ROS (Robot Operating System) framework. There will be 3 ROS nodes - data acquisition node, data processing node and earthquake detection node. Data acquisition node acquires the data from the accelerometer, logs the data and publishes the raw data to ROS topic. Data acquisition method will depend on the communication interfaces provided by selected accelerometer. Data processing node will subscribe to raw data topic, process the data in time domain and frequency domain and publish the processed data to diferent ROS topic. Earthquake detection node uses processed data to detect earthquakes. Sensor will be connected to BOINC client software, which will upload the sensor data periodically to BOINC servers. ROS programming will be done either in C/C++ or Python. System will have local web interface, which will provide options for configuring the sensor, viewing raw and processed data, downloading the logged data over SFTP etc. Web interface will be implemented in javascript using rosbridge which provides tools for interaction between web browser and ROS. Highcharts or other equivalent library will be used for plotting the data published on ROS topics. Data acquisition node will be advertsiing ROS services which will be called from web interface for configuring the sensor.

Hardware
Accelerometer will be chosen as per the DAC bandwidth requirements. Since beaglebone supports SPI, I2C, UART as well as analog reading any accelerometer can be interfaced.

Experience and Approach
I have long experience working with linux controllers such as raspberry pi, Technology Systems (TS) arm boards, Beaglebone black as well as various mirco-controllers. I have worked on development of Autonomous Underwater Vehicle, Autonomous Surface Vehicle etc. using these linux controllers and ROS framework. I have interfaced devices like AHRS, GPS, Acoutic Modems, DVL with linux controllers using different communication interfaces like serial, I2C, SPI, ethernet etc. I have also worked on processing the data using filters such as complementary filter, Kalman filter etc. All this experience will help me in development of Remote Seismometer node. I had worked for a travel based startup providing online booking platform (Vacation Labs) as full stack developer. Here I had worked on Rails, Javascript, Angular JS, HTML, CSS etc. This experience will help me in development of local web UI. Apart from this I have worked on development of time based underwater image capture system using Gopro Hero 4 cameras. The PIC microcontroller used to power on the Beaglebone black at specified time. BBB used to connect to GOPRO Hero 4 camera using WiFi, capture the image, upload it to the server (http://avp.nio.org/) and shut it down. The key approach will be to write a fully abstracted out software which allows to modify the certain part of the system without modifying the other parts. This not only makes debugging lot easier but also significantly simplifies the further development process.

Contingency
I believe in my indivisual capabilities to work independently and get things done. I have kept sufficient time for any bumps encountered during the development. If necessary, I will always be ready to put extra efforts and get things done.

Benefits
As described in introduction earthquakes are the most devastating natural disasters and still we don't have the reliable system to predict earthquakes. One of the reason for this is lack of sufficient data. For studying any phenomenon, data is very important. This project can act as a open source data repository for seismometer data at different places across the globe. Researchers can then use this data to study the earthquakes in more detail and devise reliable method for predicting these earthquakes which can save lots of human lives in the future.