Cikhaj social experiment 2012

Every person on Cikhaj 2012 meeting was equipped with TelosB sensor node programmed to observe nodes in its close proximity. Social interaction map is therefore gathered. Most of the nodes are mobile nodes attached to person. Six other nodes were positioned statically on strategic places like meeting room, sleeping rooms, doors etc. Every node broadcast packet every 5 seconds and listen for broadcast of other nodes. Every time a node receive a broadcast message, RSSI signal strength together with local time is stored into EEPROM memory of node. Additionally, master time from one special node is periodically broadcasted and also stored in EEPROM memory.

Participants: Martin, PetrS

Raw data and basic processing scripts: cikhaj2012_experimentData.zip (6.6MB) </note>

Presentation of experiment details (in Czech)😘* cikhaj_2012_presentation.pdf Figure: Building and positioning of static nodes Figure: Example visualization 1 - other nodes at seen by static node at WC Figure: Example visualization 2 - other nodes as seen by node with ID 8 during afternoon outdoor trip <code> * Data gathering, node ID to node column mapping: * start snimani cca 18:30-19 (nejprve casovac, postupne uzly, pouze cast uzlu, zbyla cast dalsi den rano) vecere, vecerni pokec, poker, postupne odchazeni do posteli, noc, ranni snidani od 9 hod, dopoledni prednasky, obed, vychazky 13-16, odpoledni prednasky, vecere, vecerni prednasky, vecerni poker, odchazeni do postele, noc, ranni snidane v 8, konec mereni v 8:30-9:00 [1] 4 (17.2. 9:53) , zastaveno 8:52 [2] 5static kvetinac, (16.2. cca 19) zastaveno 8:59 [3] 8 , (16.2. cca 19) vycteno 17.2. 18:04 [4] 10 (16.2. cca 19) , vycten 17.2. 11:35 (soubor OK), novy restart 17.2. 11:37, zastaveno 8:49 (ve druhe fazi ale nefungoval) [5] 12 (17.2. 9:57), zastaveno 8:57 [6] 13 (16.2. cca 19), zastaveno 8:44 [7] 19 (16.2. cca 19), vycten 17.2. 10:20, novy restart 17.2. 10:45, od 11:18 jiny clovek,zastaveno 8:37 [8] 24 (17.2. cca 9:00), od 15:04 jiny clovek, zastaveno 8:24 [9] 25 (17.2. cca 9:00), zastaveno 8:31 [10] 27static radio (16.2. cca 19), zastaveno 9:01 [11] 29static WC (16.2. cca 19), zastaveno 9:03 [12] 34 (17.2. 10:02), zastaveno 8:55 [13] 38 (16.2. cca 19) [14] 39static chodba (16.2. cca 19), zastaveno 9:06 [15] 40static pokoj (16.2. cca 19), umrel v prubehu noci 16-17.2., restart cca 9:30, zastaveno 8:40 [16] 42 (16.2. cca 19), zastaveno 8:46 [17] 44 (16.2. cca 19), zastaveno 8:33, v prubehu noci 17.2. vypadla baterka a doslo k resetu uzlu → poskozena cast dat [18] 50static pokoj (16.2. cca 19), zastaveno 8:28 (asi umrelo uz v patek vecer) File naming format: [node/static]nodeID_S[startDate]_[startHour]_[startMinute]m_E[endDate]_[endHour]_[endMinute]m.dat node4_S20120217_9_53m_E20120218_8_52m.dat ⇒ mobile node with ID 4, started at 9:53am 17.2.2012, stopped 8:52am 18.2.2012 static27_S20120216_c19_E20120218_9_01m.ee ⇒ static node with ID 27, started around 19pm 16.2.2012, stopped 9:01am 18.2.2012 [1] node4_S20120217_9_53m_E20120218_8_52m.ee [2] static5_S20120216_c19_E20120218_8_59m.ee [3] node08_S20120216_c19_E20120217_18_04m.ee [4] (NO MASTER TIME) node10_S20120216_c19_E20120217_11_21m.ee [5] node12_S20120217_9_57m_E20120218_8_55m.ee [6] node13_S20120216_c19_E20120218_8_44m.ee [7] (NO MASTER TIME) node19_S20120216_c19_E20120217_10_21m.ee [7] node19_S20120217_10_45m_E20120218_8_37m.ee [8] node24_S20120217_9_0m_E20120218_8_24m.ee [9] node25_S20120216_c19_E20120218_8_31m.ee [10] static27_S20120216_c19_E20120218_9_01m.ee [11] static29_S20120216_c19_E20120218_9_03m.ee [12] node34_S20120217_10_02m_E20120218_8_55m.ee [13] node38_S20120216_c19_E20120217_17_34m.ee [14] static39_S20120216_c19_E20120218_9_06m.ee [15] (NO MASTER TIME) static40_S20120216_c19_E20120217_c6_umrelPredcasne.ee, [15] (NO MASTER TIME) static40_S20120217_9_30m_E20120218_8_40m.ee [16] node42_S20120216_c19_E20120218_8_42m.ee [17] node44_S20120216_c19_E20120218_8_33m.ee [18] static50_S20120216_c19_E20120218_8_28m.ee Note: If (NO MASTER TIME) is present, master timer value was not recovered from node due to storage error. Master Time value is set to 0 (column 3) * Data formats * Data file format: 1 column … number of local period (incremental, but may be interrupted due to errors in storage) 2 column … local timer (ms) 3 column … master timer (ms). Master time value is computed from the closest possible master time beacon received and corrected against local timer of node for given period. Computed master time value is quite precise with error less then 1ms. 4-21 column … RSSI value of packet reception of beacon from this node to neighbours. 0 if no response from particular node was received. Lower value means lower signal strength (-30 is stronger signal then -75) See Cikhaj2012_anon.png for nodes placement and column mapping to nodes with particular ID (e.g., 6th column is mapped to node with ID 😎 * Processing with preprepared scripts * How to obtain basic statistics and some plots? Run: processSocialNodeData('static5_S20120216_c19_E20120218_8_59m.dat', 0, 0, [1:18]); - static5_S20120216_c19_E20120218_8_59m.dat file is used - no compensation for errors is applied (0, 0) - RSSI to all other nodes is plotted ([1:18]) Run: processSocialNodeData('static5_S20120216_c19_E20120218_8_59m.dat', 5, 3, [7]); - static5_S20120216_c19_E20120218_8_59m.dat file is used - at least 5 missing responses are required to believe that given nodes were NOT in communication range (compensation for random transmission errors, packets get lost even when nodes were close to each other) - Mean filter with window length 3 is used - RSSI values for node 19 only are plotted (see Cikhaj2012_anon.png for mapping: [7] is node 19) Run: processSocialNodeData('static5_S20120216_c19_E20120218_8_59m.dat', 5, 3, [2,10,11,14,15,18]); - print RSSI from static node 5 to all other static nodes Run: [a, m] = processSocialNodeData('node24_S20120217_9_0m_E20120218_8_24m.dat', 5, 3, [1:18]) - loads all data for node24 into a and m vectors Run: nodeInteraction(m,-75) - compute number of times (5 seconds periods) when node24 was closer then -75db RSSI to other nodes - inspect cumulativeRSSILimitCount. High value in column X means that node24 was close to node on array position [X] (NOT with ID X - see Cikhaj2012_anon.png for mapping) * Basic questions to be answered by followup analysis * - pokus o rozliseni statickych uzlu od uzlu nosenych lidmi. Napada me nekolik moznosti, jak to analyticky testovat. Napr. Pro staticky uzel by signal od ostatnich statickych nemel prilis lokalne kolisat (celkova uroven v noci je ale lepsi nez ve dne). - vizualizace spolupracujicich skupin (tj. jak v case skupiny == geograficky blizci lide, spolupracovali). Mozna vizualizace ve stylu slechtickych proudu (deleni a slevani rodin, sirka proudu dle poctu uzlu) - analyza dat rozdelenim vsech uzlu do nekolika dostatecne nezavislych skupin (vzajemna sila signalu je velka a odlisna od ostatnich skupin) pro kazdy casovy okamzik. Vykresleni prolinani techto skupin v case - rozliseni uzlu dle miry jejich kontaktu s okolim (tj. spolecenstejsti typy, ktere se hodne stykali se vsemi a naopak introvertnejsi typy) - snaha o rozliseni miry “kamaradstvi” (hypoteza: vetsi kamaradi travi vice casu pres den spolu a maji vetsi tendenci sdilet pokoj na noc) - pokus o monitorovani pohybu uzlu vuci statickym uzlum (je nutne brat v uvahu nejen aktualni silu signalu, ale i stav prenosoveho pasma - ve dne je signal slabsi avice kolisa nez v noci) - ??? * Memory readout commands (only for node manipulation, not necessary for analysis) *** cd /opt/tinyos-2.1.1/apps/MeetingReadMem/src java MeetingReadMem -comm serial@/dev/ttyUSB0:telosb > ee tail -f /opt/tinyos-2.1.1/apps/MeetingReadMem/src/ee mv ee node19_S20120217_10_45m_E20120218_8_37m.ee

cd /opt/tinyos-2.1.1/apps/MeetingReadTime/src make telosb install bsl,/dev/ttyUSB0 java MeetingReadTime -comm serial@/dev/ttyUSB0:telosb > ee tail -f /opt/tinyos-2.1.1/apps/MeetingReadTime/src/ee mv ee node19_S20120217_10_45m_E20120218_8_37m.time

WSNFilter.exe </code>