Saturday, September 17, 2011

Catalyst: Honey bee aerobatics - ABC TV Science

Catalyst: Honey bee aerobatics - ABC TV Science

Inspired research on honey bee flight via optical flow.
I enjoyed watching the way they do with bees and UAVs.



Professor Mandyam Srinivasan
(http://www.qbi.uq.edu.au/group-leader-srinivasan#selected_pubs)

Current collaborations

  • Dario Floreano, Ecole Polytechnique Federale Lausanne, Switzerland: Biologically inspired robotics
  • Marie Dacke, University of Lund: Honeybee navigation
  • Thomas Labhart, University of Zurich: Polarization vision in honeybee navigation
  • Jonathan Roberts, CSIRO, Brisbane: Robotics
  • Jochen Zeil, Australian National University: Insect vision and homing


Selected publications

  • M.V. Srinivasan, R.J.D. Moore, S. Thurrowgood, D, Soccol and D. Bland (in press) From biology to engineering: Insect vision and applications to robotics. In: Frontiers in Sensing, F.G. Barth, J.G.C. Humphrey and M.V. Srinivasan (eds), Springer-Verlag, Berlin, Heidelberg.
  • M.V. Srinivasan (2011) Honeybees as a model for the study of visually guided flight, navigation, and biologically inspired robotics. Physiological Reviews 91, 389-411.P. Kraft, C. Evangelista, M. Dacke, T. Labhart and M. V. Srinivasan (2011) Honeybee navigation: Following routes using polarized-light cues. Phil. Trans. R. Soc. B. 366, 703-708.
  • C. Evangelista, P. Kraft, M. Dacke, J. Reinhard and M.V. Srinivasan (2010) The moment before touchdown: Landing manoeuvres of the honeybee Apis mellifera. Journal of Experimental Biology 213, 262-270.
  • M.V. Srinivasan, S. Thurrowgood and D. Soccol (2009) From flying insects to autonomously navigating robots. IEEE Robotics and Automation Magazine, Special Issue on Cognitive Robotics. 16(3): 59-71.
  • S.W. Zhang, F. Bock, A. Si, J. Tautz and M.V. Srinivasan (2005) Visual working memory in decision making by honeybees. Proceedings of the National Academy of Science 102, 5250-5255. 
  • M.V. Srinivasan, S.W. Zhang and B. Rolfe (1993) Pattern vision in insects: "cortical" processing? Nature 362, 539-540. 
  • M. Lehrer, M.V. Srinivasan, S.W. Zhang and G.A. Horridge (1988) Motion cues provide the bee's visual world with a third dimension. Nature 332, 356-357. 


Wednesday, September 14, 2011

figure settings in Matlab



set(0,'defaultAxesFontName', 'Times New Roman');

set(0,'defaultTextFontName', 'Times New Roman');

set(0,'defaultAxesFontSize', 13);

set(0,'defaultTextFontSize', 13);

Tuesday, September 13, 2011

Latex equations


Frequently required (for me)

  • Multiple lines equations - eqnarray with \nonumber 
  • Braces over several lines - \Bigg( ... \Bigg)


Resources




Thursday, July 14, 2011

c++ secure library - from visual studio 2005

_s ==> secure library


  1. sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l 
    • MSDN: http://msdn.microsoft.com/en-us/library/ce3zzk1k(VS.80).aspx
    • Korean blogs: http://blog.naver.com/tomatoalive?Redirect=Log&logNo=40077924809
  2. fopen_s, _wfopen_s 
    • MSDN: http://msdn.microsoft.com/en-us/library/z5hh6ee9(v=VS.80).aspx
    • Korean blogs: http://warmz.tistory.com/87
  3. Examples from MSDN
    • // crt_sprintf_s.c
      // This program uses sprintf_s to format various
      // data and place them in the string named buffer.
      //
      
      #include <stdio.h>
      
      int main( void )
      {
         char  buffer[200], s[] = "computer", c = 'l';
         int   i = 35, j;
         float fp = 1.7320534f;
      
         // Format and print various data: 
         j  = sprintf_s( buffer, 200,     "   String:    %s\n", s );
         j += sprintf_s( buffer + j, 200 - j, "   Character: %c\n", c );
         j += sprintf_s( buffer + j, 200 - j, "   Integer:   %d\n", i );
         j += sprintf_s( buffer + j, 200 - j, "   Real:      %f\n", fp );
      
         printf_s( "Output:\n%s\ncharacter count = %d\n", buffer, j );
      }
      #include <stdio.h>
      
      FILE *stream, *stream2;
      
      int main( void )
      {
         int numclosed;
         errno_t err;
      
         // Open for read (will fail if file "crt_fopen_s.c" does not exist)
         if( (err  = fopen_s( &stream, "crt_fopen_s.c", "r" )) !=0 )
            printf( "The file 'crt_fopen_s.c' was not opened\n" );
         else
            printf( "The file 'crt_fopen_s.c' was opened\n" );
      
         // Open for write 
         if( (err = fopen_s( &stream2, "data2", "w+" )) != 0 )
            printf( "The file 'data2' was not opened\n" );
         else
            printf( "The file 'data2' was opened\n" );
      
         // Close stream if it is not NULL 
         if( stream)
         {
            if ( fclose( stream ) )
            {
               printf( "The file 'crt_fopen_s.c' was not closed\n" );
            }
         }
      
         // All other files are closed:
         numclosed = _fcloseall( );
         printf( "Number of files closed by _fcloseall: %u\n", numclosed );
      }

Wednesday, July 6, 2011

POSIX Thread and MS Visual Studio 2008


For the application of POSIX Thread to Windows (MS Visual Studio), POSIX Thread for Win32 is required. By efforts of Ben Elliston et al, the source tree and precompiled .DLL, .LIB and necessary header files are included in the self-extracting zip file named "pthread-w32-v-v-v-release.exe" at: ftp://sourceware.org/pub/pthreads-win32 (unless visit http://sourceware.org/pthreads-win32/)

After extraction,
1) Copy those files as follows (in my case):
- *.dll: C:\PThread2.8\bin
- *.h (three files): C:\PThread2.8\include
- *.lib & *.a: C:\PThread2.8\lib


2) Set MS Visual Studio Options as follows:
- Tools->Options->Project and Solutions->VC++ Directories
--> Add C:\PThread2.8\bin in Executable files
--> Add C:\PThread2.8\include in Include files
--> Add C:\PThread2.8\lib in Library files

3) Add a library file MS Visual Studio Project Property
- Project Property -> Configuration Properties -> Linker->Additional Dependencies
- 'pthreadVC2.lib' is recommended for MS Visual Studio


* Note
For examples given by the Internet, thread functions needs to add a line "return NULL;".
(It may be a problem for win32 application only.)

Tuesday, June 7, 2011

Create 3D models from photographs using the web


Create 3D models from photographs using the web
http://labs.autodesk.com/utilities/photo_scene_editor/

The Project Photofly 2.0 technology preview will expire on December 31, 2012.

Graph theory and its application





1. Book: Graph Theory, Reinhard Diestel, Springer
It's basic... but it's not straightforard and familiar with me.

2. Internet source
It's useful to grasp basic concepts and application areas.

2.1 Algorithmic Graph Theory
http://www.personal.kent.edu/~rmuhamma/GraphTheory/graphTheory.htm

"Generally speaking, we use graphs in two situations.
Firstly, since a graph is a very convenient and natural way of representing the relationships between objects we represent objects by vertices and the relationship between them by lines.
Secondly, we take the graph as mathematical model, solve the appropriate graph-theoretic problem, and then interpret the solution in terms of the original problem.

Most problems in graph theory can be described under the following headings:
    * Existence Problems
          o Does there exist . . . ?
          o Is it possible to . . . ?
    * Construction Problems
          o If . . . exists, how can we construct it?
    * Enumeration Problems
          o How many . . . are there, and can we list them all?
    * Optimization Problems?
          o If there are several . . . which one is the best?

Generally speaking, algorithms associated with trees can be divided into three types.
    * Algorithms for searching and labeling a given tree.
    * Algorithms for constructing various types of tree.
    * Algorithms for counting trees of a particular type."

2.2 Wikipedia: Graph theory
http://en.wikipedia.org/wiki/Graph_theory

2.3 Wikipedia: List of graph theory topics
http://en.wikipedia.org/wiki/List_of_graph_theory_topics


3. Papers

Three papers highlighted are most interesting ones for me.

@article{mingruisegmentation,
title={Segmentation of Point Cloud Scanned from Trees},
author={Mingrui, DAI and ZHANG, X. and ZHANG, Y.K. and JAEGER, M.}
}
@inproceedings{bucksch2006skeletonization,
title={Skeletonization and segmentation of point clouds using octrees and graph theory},
author={Bucksch, A. and van Wageningen, H.A.},
booktitle={ISPRS Symp.: Image Engineering and Vision Metrology Vol. XXXVI. ISPRS Commission V Symposium},
pages={1--6},
year={2006},
organization={Citeseer}
}
@article{demarsin2007detection,
title={Detection of closed sharp edges in point clouds using normal estimation and graph theory},
author={Demarsin, K. and Vanderstraeten, D. and Volodine, T. and Roose, D.},
journal={Computer-Aided Design},
volume={39},
number={4},
pages={276--283},
year={2007},
publisher={Elsevier}
}
@article{natali2011graph,
title={Graph-based representations of point clouds},
author={Natali, M. and Biasotti, S. and Patan{\v{c}}, G. and Falcidieno, B.},
journal={Graphical Models},
year={2011},
publisher={Elsevier}
}
@article{van2007dimensional,
title={Dimensional reduction of 3D building models using graph theory and its application in building energy simulation},
author={van Treeck, C. and Rank, E.},
journal={Engineering with Computers},
volume={23},
number={2},
pages={109--122},
year={2007},
publisher={Springer}
}
@inproceedings{bach2008graph,
title={Graph kernels between point clouds},
author={Bach, F.R.},
booktitle={Proceedings of the 25th international conference on Machine learning},
pages={25--32},
year={2008},
organization={ACM}
}
@inproceedings{golovinskiy2009min,
title={Min-cut based segmentation of point clouds},
author={Golovinskiy, A. and Funkhouser, T.},
booktitle={Computer Vision Workshops (ICCV Workshops), 2009 IEEE 12th International Conference on},
pages={39--46},
year={2009},
organization={IEEE}
}
@inproceedings{moosmann2009segmentation,
title={Segmentation of 3d lidar data in non-flat urban environments using a local convexity criterion},
author={Moosmann, F. and Pink, O. and Stiller, C.},
booktitle={Intelligent Vehicles Symposium, 2009 IEEE},
pages={215--220},
year={2009},
organization={IEEE}
}
@article{connor2010fast,
title={Fast construction of k-nearest neighbor graphs for point clouds},
author={Connor, M. and Kumar, P.},
journal={Visualization and Computer Graphics, IEEE Transactions on},
volume={16},
number={4},
pages={599--608},
year={2010},
publisher={IEEE}
}
@article{callahan1995decomposition,
title={A decomposition of multidimensional point sets with applications to k-nearest-neighbors and n-body potential fields},
author={Callahan, P.B. and Kosaraju, S.R.},
journal={Journal of the ACM (JACM)},
volume={42},
number={1},
pages={67--90},
year={1995},
publisher={ACM}
}
@article{hoppe1992surface,
title={Surface reconstruction from unorganized points},
author={Hoppe, H. and DeRose, T. and Duchamp, T. and McDonald, J. and Stuetzle, W.},
journal={COMPUTER GRAPHICS-NEW YORK-ASSOCIATION FOR COMPUTING MACHINERY-},
volume={26},
pages={71--71},
year={1992},
publisher={Citeseer}
}
@article{stokely1992surface,
title={Surface parametrization and curvature measurement of arbitrary 3-D objects: five practical methods},
author={Stokely, EM and Wu, SY},
journal={Pattern Analysis and Machine Intelligence, IEEE Transactions on},
volume={14},
number={8},
pages={833--840},
year={1992},
publisher={IEEE}
}