11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Performan...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Why smart...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Component...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Problems
...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
System
Re...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Buffering...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Double bu...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Real syst...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Smart sen...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Conclusio...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Future wo...
11th International Symposium on Distributed Computing and Artificial Intelligence.
Salamanca, 4nd-6th Juny, 2014
Thanks fo...
Upcoming SlideShare
Loading in …5
×

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

461 views
328 views

Published on

Currently, 3D sensors can be considered an evolution of cameras by providing the image with its depth information. These sensors have a generic function and the programmer has to process the received information in order to be adapted and used in a specific environment. In robots navigation, the 3D information can be useful for basic behaviours such as “obstacles avoidance” or even more complex behaviours such as “maps generation”. In this article an image management system provided by the xTion intelligent sensor is presented. The xTion sensor provides a VGA image and a 3D depth, which allows it to be used for several purposes. In order to distribute the data, it is acquired, processed and sent to several clients with a triple buffer system modified to serve the most recent image to the client. The system is programmed in C for Linux and built-in in a Raspberry PI. The article exposes the performance and results from monitoring the frame's delay comparing it with a simple and a double buffer system widely used in this kind of systems.

Published in: Engineering, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
461
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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
  2. 2. 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
  3. 3. 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 +
  4. 4. 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
  5. 5. 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
  6. 6. 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()
  7. 7. 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)
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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 𝑇𝑓𝑟𝑎𝑚𝑒_𝑑𝑒𝑙𝑎𝑦 = 𝑡 𝑎𝑑𝑞 +𝑡 𝑤𝑝 +𝑡 𝑝 + 𝑡 𝑤𝑠 + 𝑡 𝑠
  12. 12. 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.
  13. 13. 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.
  14. 14. 11th International Symposium on Distributed Computing and Artificial Intelligence. Salamanca, 4nd-6th Juny, 2014 Thanks for your attention

×