11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Performance and results of
the triple buffering built-in in
a Raspberry PI to optimize the
distribution of information
from a Smart Sensor
Jose-Luis Jimenez-Garcia, Jose-Luis Poza-Lujan,
Juan-Luis Posadas-Yagüe, David Baselga-Masia,
José-Enrique Simó-Ten
School of Engineering in Computer Science (ETSINF)
University Institute of Control Systems and Industrial Computing (ai2)
Universitat Politècnica de València (UPV) (Spain
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Why smart sensors?
Use of sensors in robot navigation:
Survival behaviours  reactive navigation  simple
sensors
Complex behaviours  deliberative navigation  has
been used information from reactive information
sensors
Currently, robots need sensors associated to
behaviours.
However, this information is useful to build an
environment map or to locate specific objects during
the navigation
The information that a sensor produces is interesting it
to be distributed to different behavioural processes
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Components
From sensor to smart (intelligent) sensor (device)
Arduino
Intel
Galileo
Raspberry
PI
Reliability
(and price)
Computing
Computing
Reliability
(and price)
Temperature
PIR RGB-D
SENSORS
CONTROLLERS
+
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Problems
Intelligent sensor : pre-processing and
Distributing the sensor data
Intelligent Sensor
RGB image
Depth map
Acquisition Process
···
Distribution
···
···
···
···
Clients
Smart Resource
QoS
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
System
Real Robots
xTion
Raspberry Pi
USB
OpenNI
OpenCV
TCP Server
Ethernet
Smart Resource
Robots
TCP
Client
Control
Simulation
Real implementation
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering techniques
Sensor acquisition
Sensor distribution
Solution
1: Wait()
2: Swap()
3: Send()
1: I 0
2: Adquisition()  frame
3: while I < frame.MaxPixel
do
4: frame.Process()
5: end while
6: Swap()
7: Signal()
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering
tacc < tdistribution
Acquisition()
Process Thread()
Process()
signal()
Send Thread()
wait()swap() swap() send()
Clients
A1
(fi+1)
A3
(fi)
swap() & signal()
swap()
acquisition & process() send()
Intelligent
Sensor
send()
send()swap() & signal()
send()
swap() & signal() send()
acquisition & process()
acquisition & process()
Frame A3 is
last frame,
Frame A2 is
not sent
swap()acquisition & process()
send()swap() & signal()
..., fi, fi+1, fi+2, fi+3, fi+4, ...
A3
(fi)
A3
(fi)
A3
(fi)
A1
(fi+1)
A1
(fi+1)
A1
(fi+1)
A1
(fi+1)
A1
(fi+1)
A1
(fi+1)
A1
(fi+1)
A2
(fi+2)
A2
(fi+2)
A2
(fi+2)
A3
(fi+3)
..., fi, fi+1, fi+3, ...
A2
(fi+2)
A3
(fi+3)
A2
(fi+4)
A2
(fi+4)
A3
(fi+3)
A3
(fi+3)
A2
(fx)
A2
(fx)
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering
tacc > tdistribution
A1
(fi+1)
A3
(fi)
swap() & signal()
acquisition & process() swap() & send()
swap() & signal()
acquisition & process()
acquisition & process()
A3
(fi)
A3
(fi)
A1
(fi+1)
A1
(fi+1)
A2
(fi+2)
A2
(fi+2)
A2
(fi+2)
A3
(fi+3)
A3
(fi+3)
A2
(fx)
A2
(fx)
wait()acquisition & process() A1
(fi+1)
A2
(fx)
A3
(fi)
A3
(fi)
acquisition & process()
acquisition & process() A2
(fi+2)
A3
(fi)
A1
(fi+1)
wait()
swap() & signal() A1
(fi+1)
wait()
swap() & send()
wait()
A1
(fi+1)
acquisition & process()
A3
(fi+3)
A1
(fi+1)
A2
(fi+2)
wait()
A1
(fi+1)
A3
(fi+3)
A2
(fi+2)
wait()
swap() & send()
swap() & send()A1
(fi+4)
A2
(fi+2)
Acquisition()
Process Thread()
Process()
signal()
Send Thread()
wait()swap() swap() send()
Intelligent
Sensor
..., fi, fi+1, fi+2, fi+3, fi+4, ... ..., fi, fi+1, fi+2, fi+3, ...
Clients
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Double buffer in front of triple buffering
Triple  There is always a frame ready to be sent
Double  Always sends the last frame
Optimization
Time
Triple buffer
Send
i
Acquisition
& Process
Frame delay (i+2)
Frame Period
i+2 i+5
i i+3
Double
buffer Send
i+8
i+10 i+11i+9i+8i+7i+6i+5i+4i+3i+2i+1i
Frame delay (i+3)
i+9i+6
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Real system to measure double vs triple
buffering methods
Experiments
Control
Distributing
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Smart sensor introduces a frame delay
Buffering vs number of clients
Results
1 client 2 clients 4 clients
Variables PC RPI PC RPI PC RPI
Simple buffer 67350 3176925 66936 592390 66945 1293636
Double buffer 67350 203086 66936 334824 66945 640506
Triple buffer 66940 199647 67386 332900 66930 611752
𝑇𝑓𝑟𝑎𝑚𝑒_𝑑𝑒𝑙𝑎𝑦 = 𝑡 𝑎𝑑𝑞 +𝑡 𝑤𝑝 +𝑡 𝑝 + 𝑡 𝑤𝑠 + 𝑡 𝑠
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Conclusions
Powerful computer (PC) differences between
the types of buffer are not significant.
An embedded system provides less efficient
results (delay times) but…
 Double buffer offers the last frame with
some delay time.
 In triple buffering there is always a frame
available to be sent.
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Future work
How the buffer used affects to robot navigation?
Reactive behaviours require information as quickly as
possible so the triple buffer seems the most appropriate
method. However, the immediacy of the double buffer,
can improve certain non-critical behaviours as tracking
paths, due to they provide latest information, but with
less immediacy.
As future work, it is planned to adapt the triple buffer to
a system where the obtained data from the intelligent
sensor would have several distinct parallel processes, in
example, locating free paths to the robot trajectory at
the same time that interesting objects to surrounding
maps generation are detected like corners, walls or door
steps.
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Thanks for your attention

Performance and results of the triple buffering built-in in a Raspberry PI to optimize the distribution of information from a Smart Sensor

  • 1.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Performance and results of the triple buffering built-in in a Raspberry PI to optimize the distribution of information from a Smart Sensor Jose-Luis Jimenez-Garcia, Jose-Luis Poza-Lujan, Juan-Luis Posadas-Yagüe, David Baselga-Masia, José-Enrique Simó-Ten School of Engineering in Computer Science (ETSINF) University Institute of Control Systems and Industrial Computing (ai2) Universitat Politècnica de València (UPV) (Spain
  • 2.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Why smart sensors? Use of sensors in robot navigation: Survival behaviours  reactive navigation  simple sensors Complex behaviours  deliberative navigation  has been used information from reactive information sensors Currently, robots need sensors associated to behaviours. However, this information is useful to build an environment map or to locate specific objects during the navigation The information that a sensor produces is interesting it to be distributed to different behavioural processes
  • 3.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Components From sensor to smart (intelligent) sensor (device) Arduino Intel Galileo Raspberry PI Reliability (and price) Computing Computing Reliability (and price) Temperature PIR RGB-D SENSORS CONTROLLERS +
  • 4.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Problems Intelligent sensor : pre-processing and Distributing the sensor data Intelligent Sensor RGB image Depth map Acquisition Process ··· Distribution ··· ··· ··· ··· Clients Smart Resource QoS
  • 5.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 System Real Robots xTion Raspberry Pi USB OpenNI OpenCV TCP Server Ethernet Smart Resource Robots TCP Client Control Simulation Real implementation
  • 6.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Buffering techniques Sensor acquisition Sensor distribution Solution 1: Wait() 2: Swap() 3: Send() 1: I 0 2: Adquisition()  frame 3: while I < frame.MaxPixel do 4: frame.Process() 5: end while 6: Swap() 7: Signal()
  • 7.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Buffering tacc < tdistribution Acquisition() Process Thread() Process() signal() Send Thread() wait()swap() swap() send() Clients A1 (fi+1) A3 (fi) swap() & signal() swap() acquisition & process() send() Intelligent Sensor send() send()swap() & signal() send() swap() & signal() send() acquisition & process() acquisition & process() Frame A3 is last frame, Frame A2 is not sent swap()acquisition & process() send()swap() & signal() ..., fi, fi+1, fi+2, fi+3, fi+4, ... A3 (fi) A3 (fi) A3 (fi) A1 (fi+1) A1 (fi+1) A1 (fi+1) A1 (fi+1) A1 (fi+1) A1 (fi+1) A1 (fi+1) A2 (fi+2) A2 (fi+2) A2 (fi+2) A3 (fi+3) ..., fi, fi+1, fi+3, ... A2 (fi+2) A3 (fi+3) A2 (fi+4) A2 (fi+4) A3 (fi+3) A3 (fi+3) A2 (fx) A2 (fx)
  • 8.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Buffering tacc > tdistribution A1 (fi+1) A3 (fi) swap() & signal() acquisition & process() swap() & send() swap() & signal() acquisition & process() acquisition & process() A3 (fi) A3 (fi) A1 (fi+1) A1 (fi+1) A2 (fi+2) A2 (fi+2) A2 (fi+2) A3 (fi+3) A3 (fi+3) A2 (fx) A2 (fx) wait()acquisition & process() A1 (fi+1) A2 (fx) A3 (fi) A3 (fi) acquisition & process() acquisition & process() A2 (fi+2) A3 (fi) A1 (fi+1) wait() swap() & signal() A1 (fi+1) wait() swap() & send() wait() A1 (fi+1) acquisition & process() A3 (fi+3) A1 (fi+1) A2 (fi+2) wait() A1 (fi+1) A3 (fi+3) A2 (fi+2) wait() swap() & send() swap() & send()A1 (fi+4) A2 (fi+2) Acquisition() Process Thread() Process() signal() Send Thread() wait()swap() swap() send() Intelligent Sensor ..., fi, fi+1, fi+2, fi+3, fi+4, ... ..., fi, fi+1, fi+2, fi+3, ... Clients
  • 9.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Double buffer in front of triple buffering Triple  There is always a frame ready to be sent Double  Always sends the last frame Optimization Time Triple buffer Send i Acquisition & Process Frame delay (i+2) Frame Period i+2 i+5 i i+3 Double buffer Send i+8 i+10 i+11i+9i+8i+7i+6i+5i+4i+3i+2i+1i Frame delay (i+3) i+9i+6
  • 10.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Real system to measure double vs triple buffering methods Experiments Control Distributing
  • 11.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Smart sensor introduces a frame delay Buffering vs number of clients Results 1 client 2 clients 4 clients Variables PC RPI PC RPI PC RPI Simple buffer 67350 3176925 66936 592390 66945 1293636 Double buffer 67350 203086 66936 334824 66945 640506 Triple buffer 66940 199647 67386 332900 66930 611752 𝑇𝑓𝑟𝑎𝑚𝑒_𝑑𝑒𝑙𝑎𝑦 = 𝑡 𝑎𝑑𝑞 +𝑡 𝑤𝑝 +𝑡 𝑝 + 𝑡 𝑤𝑠 + 𝑡 𝑠
  • 12.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Conclusions Powerful computer (PC) differences between the types of buffer are not significant. An embedded system provides less efficient results (delay times) but…  Double buffer offers the last frame with some delay time.  In triple buffering there is always a frame available to be sent.
  • 13.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Future work How the buffer used affects to robot navigation? Reactive behaviours require information as quickly as possible so the triple buffer seems the most appropriate method. However, the immediacy of the double buffer, can improve certain non-critical behaviours as tracking paths, due to they provide latest information, but with less immediacy. As future work, it is planned to adapt the triple buffer to a system where the obtained data from the intelligent sensor would have several distinct parallel processes, in example, locating free paths to the robot trajectory at the same time that interesting objects to surrounding maps generation are detected like corners, walls or door steps.
  • 14.
    11th International Symposiumon Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Thanks for your attention