Wiki/beaglebone-remote-seismometer-node-lakshadeep
Contents
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).
Proposal
About me
IRC: | lsnaik |
Github: | Lakshadeep |
Elinux: | Lsnaik |
School: | Bonn Rheine Sieg University of Applied Science, Bonn |
Country: | Germany |
Primary Language: | English |
Typical Work Hours: | 7 PM to 1 AM (Central European Time) |
About my project
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.
Timeline
2017-06-06: | Select the accelerometer sensor as per given specifications and devise method for sensor calibration |
2017-06-13: | Interface accelerometer with beaglebone (Data acquisition node) |
2017-06-20: | Develop data processing algorithms and implement data processing node |
2017-06-27: | Develop algorithms for earthquake detection system and implement earthquake detection node |
2017-07-04: | Develop the UI for local web interface and setting up local web server |
2017-07-11: | Implement ROS services and topics required for communication between local web UI and ROS |
2017-07-18: | Contingency week / Testing of the prototype developed till now / Bug fixing |
2017-07-25: | Interface the sensor with BOINC client and verifying data upload on BOINC servers |
2017-08-01: | Contingency week / Testing integrity of the full system / Bug fixing |
2017-08-08: | Contingency week / Testing integrity of the full system / Bug fixing |
2017-08-15: | Documentation |
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.