Home

TiViPE - Tino`s Visual Programming Environment

image

Contents

1. Blackwell Visual programming in the wild A survey of labview programmers Journal of Visual Languages and Computing 12 4 435 472 2001 12 M Young D Argiro and S Kubica Cantata Visual pro gramming environment for the khoros system Computer Graphics 29 2 22 24 May 1995
2. 10 forms TiViPE will then generate the code needed for the icon and compile the code to a stand alone program Program mers will benefit from the existing modules in TiViPE that will give them the opportunity to re use existing code in a simple way 3 Researchers will find TiViPE very beneficial for per forming experiments since it allows simple and rapid parameter modification TiViPE supports parallel programming and allows inter action with a running program Its graphical structure gives a developer a natural debugging tool therefore TiViPE is suitable for critical processes that can be applied in fields like robotics and computational neuroscience The graphical programming environment TiViPE will make programming faster and easier TiViPE makes other library routines accessible through its graphical environ ment Construction of a network is a matter of selecting icons from a menu and connecting them Compounding such a network to a new module is performed by pressing a single button Ti ViPE will re use the code of all the modules in the network and generate a new module The ease of cre ating anew module and the re use of existing code will lead to the availability of a respectable number of modules that in turn can be used by others This is the way to have many developers using TiViPE as their environment and sharing the constructed modules References 1 Agilent Technologies Inc Vee Pro User s Guide 2000 2 P
3. T Cox F R Giles and T Pietrzykowski Prograph A step toward liberating the programmer from textual condi tioning In JEEE Workshop in Visual Languages pages 150 156 1989 3 R Helsel Visual Programming with HP VEE Prentice Hall PTR 1997 4 T Lourens http www dei brain riken go jp emilia Collab oration Tino TiViPE index html Ti ViPE Download 2004 5 T Lourens and R P Wirtz Extraction and matching of symbolic contour graphs International Journal of Pattern Recognition and Artificial Intelligence IJPRAI 17 7 1279 1302 November 2003 6 B Lucas G D Abram N S Collins D A Epstein D L Greesh and K P McAuliffe An architecture for a scien tific visualization system In Proceedings of Visualization 92 pages 107 114 IEEE Computer Society Press October 1992 7 National Instruments LabView User Manual 2003 8 M F Sanner D Stoffler and A J Olson Viper a visual programming environment for python In 10th International Python Conference February 2002 9 C Upson J T Faulhaber D Kamins D Laidlaw D Schlegel J Vroom R Gurwitz and A van Dam The application visualization system A computational environ ment for scientific visualization IEEE Computer Graphics and Applications 9 4 32 40 July 1989 10 P F Whelan and D Molloy Machine Vision Algorithms in Java Techniques and Implementation Springer Verlag London 2000 11 K N Whitley and A E
4. TVPHOME TiViPEfixed Ai 1 1 Modules bin misc lt Name module 1 entry 1 gt TiViPEfixed lt user files directories gt lt Name module 1 entry M gt T i 1 1 lt Name module K entry N gt D eee y i lt Main entry name 1 gt i lt Main entry name N gt install The same structure as main entry 1 The same structure Modules pro as main entry 1 Makefile lt Name 1 gt lt Name M gt misc install The same structure as Name 1 CodeInfo idx Makefile lt Main entry 1 gt pro se sre obj lt Name 1 gt cpp lt Name 1 gt 0 lt Name 1 gt h lt Name 1 gt pro lt Name 1 gt ci Makefile Figure 6 File structure as used by TiViPE All files are maintained by TiViPE to specify a topic e g image processing neural networks finance mechanics etc The sub menus can be used to go into more detail of the given topic At a single level it is useful to specify first the modules in alphabetical order and next to give the sub menus in alphabetical order This is most convenient for searching a specific module Every module has a separate directory in the main entry directory Such a directory contains sources lt name gt ci lt name gt h and lt name gt cpp in the src directory and ob ject file s l
5. Yes a ReadImage TVPgen_ReadImage m1 mlargc mlargv ml g new GUI mlargc mlargv ml vl ml g gt guiGetIO Inputfile ml cn new ImagelO m1 vO ml cn gt ReadImage v1 Display TVPgen_Display m2 m2argc m2argv m2 g new GUI m2argc m2argv vl m2 g gt guiGetToggle Use openGL m2 cn new TVPDisplayInterface b m2 cn gt TVPDisplayData m1 v0 v1 Figure 4 a Graphical program that reads and displays an image The Readlmage param eter window on top allows the user to specify the filename The Display parameter win dow at the bottom allows the use of openGL b Textual C equivalent of the network modified from the code generated by TiViPE sent the connections between the icons An example pro gram of reading and displaying an image in TiViPE repre sented by two connected icons is illustrated in Figure 4a Its textual equivalent as generated by TiViPE in Figure 4b This figure demonstrates the differences between the two ways of programming The icon s name indicates the func tional role of the routine The execution order of the icons is determined by the way the modules are connected i e output is connected to input The icons hide all unneces sary details of a textual program which makes a network of icons much more intuitive than a textual program 3 3 Architecture The functional architecture of TiViPE is presented in Fi
6. greater likelihood of acceptance An important reason that visual programming has hampered is due to the migration process from a tex tual program to a visual program The concept of TiViPE is to make such migration process simple TiViPE wraps any routine into a graphical module by filling out a few forms about the routine By pushing a single button all code is generated compiled and integrated in the environment without additional programming This makes the migra tion process fast and easy It makes TiViPE a component based visual programming environment like for instance Java studio that employs an information flow with unlim ited programming capabilities The paper is organized as follows Section 2 provides an overview of several different VPEs Section 3 introduces TiViPE elaborates on the concept of visual programming and gives an overview of the modules that are currently available within TiViPE The paper finishes with a discus sion 2 Overview of Visual Programming Environ ments A widely used graphical programming environment is LabVIEW 7 which is especially oriented to hardware Its G programming language which is used to construct block diagrams provides a powerful tool to interact with hardware directly HP Vee 3 which is currently known as Agilent Vee 1 aims at a similar group of users as LabVIEW Vee can execute modules by command line and has a flexible data structure The graphical user interface is w
7. TiViPE Tino s Visual Programming Environment Tino Lourens Honda Research Institute Japan Co Ltd 8 1 Honcho Wako shi Saitama 351 0114 Japan E mail tino jp honda ri com Abstract TiViPE 4 is a component based visual programming environment VPE that enables users to build programs by construction of a network of components interactively A single module component represented by a graphi cal icon is a computational unit Multiple icons can be connected to each other to yield a directed graph a net work that represent a program TiViPE is in appear ance similar to programs such as AVS 9 Vee 3 1 OpenDX 6 Khoros 12 LabVIEW 7 NeatVision 10 and ViPEr 8 but presents some fundamental differences TiViPE integrates documentation with an existing routine call that has been programmed in C C Fortran or Java and automatically generates C code that is com piled to stand alone program This program is able to exe cute the specified routine provide a graphical icon or give html formatted documentation about the routine Hence within TiViPE there is no textual programming for the user TiViPE strongly re uses code which is inherent to visual programming and automatic code regeneration by com pounding a network of modules to a single module which leads to faster programming TiViPE supports network ing and parallel processing in a natural way and allows the user to modify an activated network T
8. ad data The input output group contains routines to read and write the Data5D data structure and images in 8 different formats Visualization contains modules to display or animate data Around 30 different modules for image processing are available These modules were used for research purposes they include color manipulation data manipulation filter ing graph extraction image operations image input and output and early vision operators 4 Discussion TiViPE is a visual programming environment it pro vides both an application environment and a software de velopment environment for data processing analysis ex ploration and visualization The TiViPE environment has been designed to enable efficient collaboration among peo ple with different backgrounds and interests Within the en vironment this is achieved by emphasizing on ease of use scalability and extensibility For example all applications used within TiViPE including those generated by you and others with the TiViPE environment can transparently ac cess arbitrarily data structures distributed across a network TiViPE aims at different user groups 1 All users will be able to program by using ready mod ules and constructing a network of these modules 2 Programmers will in common avoid to use a graphical environment if the effort is too big to wrap an existing routine The only effort needed in TiViPE to wrap an existing routine is to fill out a set of
9. cessing facilities 7 the possibility to compound a network to anew module by scripting or automatic code regeneration 8 the possibility to have I O through file or memory in teraction TiViPE contains a small set of almost 60 modules for in formation processing data exploration and data visualiza tion With these general modules problems can be solved in different application fields TiViPE provides multi di mensional data manipulation operators including pointwise arithmetic data conversions data organization and size op erators and includes a set of specific image processing rou tines TiViPE allows a user to run a module independently from the environment therefore all modules are available as stand alone executables Compounding modules of a net work into a single module will be performed by regenera tion of code from the existing modules The user will have the choice to make a selection between multiple processes or threading This is different from both AVS and Khoros that are designed to batch these modules Hence these en vironments still contain a considerable computational over head Compounding modules by batching has the advan tage that one can easily modify the structure while for ev ery modification in TiViPE of a compounded network code generation and compilation needs to be performed 3 1 Environment TIVIPE File Modules Control Help 5242 60 STOP eu aA Process D
10. ed li braries and the names of the used include files An important difference with for example LabView is that a user is able to add or delete a module icon from a running program where a program is represented by a net work of graphical icons Depending on the structure of the network modules can be restarted automatically The latter is essential in robotics and real world parallel processes Strong focus has been on the user friendliness of Ti ViPE i e all actions parameter modifications and the html doc umentation can be accessed within two button clicks on the graphical icon TiViPE provides 1 GUI construction and modification of modules and data structures 2 automatic code generation and compilation to a stand alone executable of a module that is able to execute the routine provided by the user provide html documenta tion both in Ti ViPE and on the command line provide the graphical user interface to TiViPE and give a usage message on the command line 3 automatic code generation and compilation of a data structure to a library that contains a set of basic opera tions that can be performed on the data of the structure initialize set check availability delete read write and retrieve html documentation about the structure 4 simple icons with full functionality given by 4 action buttons 5 input and output data types that are distinguished by different colors 6 build in networking and parallel pro
11. es Tcl and Python scripting The main advantage of these scripts are that they are platform independent ViPEr is clearly inspired on AVS and has a fixed set of data struc tures Like AVS the data types are clearly distinguishable NeatVision 10 is a Java based VPE meant for image pro cessing It currently contains around 200 different image processing and analysis functions It is an intuitive environ ment that uses simple icons containing low level routines but it is suitable solely for image analysis 3 TiViPE The main drawback the author experienced by using AVS and Khoros in the past decade was that both environ ments need a considerable effort to construct a graphical module It is one of the main reasons why users are not migrating to a VPE Much of the effort in developing TiViPE has gone in adding a module or a data structure together with their doc umentation to the environment Wrapping existing textual routines that are programmed in C C Fortran or Java into a graphical unit is performed without additional pro gramming The conditions firstly are that a routine has been programmed in a language that supports routines with data typed parameters and secondly that the routine is available in a library The construction of a module is a matter of filling out a set of forms Six of these forms are about doc umentation the other four are the name of the routine the used parameters of the routine the names of the us
12. gure 5 modification of a module is at the left and mod ification of a data structure on the right Since both use a similar concept only module construction or modification will be discussed in more detail TiViPE AA System data GUI Menu gt TiViPE y SystemData GUI Datastructure _ TiViPEstructures TiViPEfixed 1 User data CodeInfo GUI Single structure Userdata Structure lt name gt lt name gt y 1 Module generator M _ Source code Structure generator m _ Source code lt name gt h lt structure gt h 1 lt name gt cpp 1 lt structure gt cpp Two step Makefile update Makefile update compilation as a gt C Executable lt name gt lt name gt gui guidata lt name gt info info html lt name gt usage lt name gt lt parameters gt Li GUI Module Compile to library gt C Library Figure 5 Functional architecture of TiViPE All module entries start with GUI Menu see Figure 5 where a specific module is selected from an existing list that has been obtained from the System data files When a single module is selected GUI Module will be activated It provides the user with a set of ten forms 6 for docu mentation and 4 to embed a routine call that can be edited The data of these forms is stored in and retrieved from a so called Codelnfo file The name denotes a blend of source Code and Info
13. h ically represented by an icon which is a gray rectangle with an appropriate name which is mostly the name of the rou tine call A number of N 1 small colored rectangles are given at the top of the rectangle they represent the input pa rameters The additional left most unobtrusive grey rectan gle is a control flow parameter to direct the activation flow The control flow might be needed when there are no input or output parameters or when parallel processing flows need to be avoided At the bottom of the rectangle are L 1 col ored rectangles that represent the output parameters Again the first rectangle is used to control the activation flow Four internal rectangular action buttons complete the icon The advantage of a graphical representation over the tex tual routine call is that the three types of parameters are nat urally subdivided Also different data types are immediately visible due to their difference in color The internal param eters can be visualized by clicking the upper right internal button of the icon a parameter window will pop up see also Figure 2 for an example Different routines in a textual program are given by a sequence of routine calls in a graphical programming envi ronment these modules are connected by a directed graph where the vertices represent the icons and the edges repre 1A graph is a set of vertices and a set of tuples of vertices that are called edges Use openGL r No M
14. iViPE also aims at rapid prototyping which demands user friendliness pro gramming by existing modules for basic users and focuses on the documentation of a module TiViPE has been used in the field of computer vision robotics and computational neuroscience 1 Introduction Visual programming has been proven to be more effi cient than classical textual programming There is a strong increase in program development up to five times faster 1 It increases the productivity of both researchers and ap plication developers regardless of their programming expe rience 12 One aspect of increased efficiency is that a vi sual notation provides a intuitive organization and can make information explicit 11 It also is due to natural software re use i e by using the same graphical module multi ple times Another advantage is the possibility to bring ex isting programs and routine calls programmed in different textual programming languages together into a consistent standardized and cohesive environment The number of users of visual programming languages however is negligible compared to the users of textual pro gramming languages like C C Java etc despite the ad vantages Domain specific visual programming languages VPLs such as LabVIEW which allows to import existing textual code 7 have been more successful than general purpose VPLs like Prograph 2 A VPL that conforms to a textual language standard has a much
15. isplay is active P Figure 1 TiViPE with an example Figure 1 illustrates TiViPE with a sample network This network extracts a contour graph from an input image by using modeled complex and endstopped cells of monkey primary visual cortex areas V1 and V2 and visualizes its result For details about the model see 5 A single module is a stand alone executable with input local and output parameters Every module contains four internal buttons see Figure 3a e The left upper button is the execute or stop module but ton Red denotes active grey inactive e The left lower button indicates on which machine the module is being executed Dark blue denotes the local host other colors that are provided by the user repre sent a different machine or processor e The right upper button pops up or closes the parameter window upon pressing Red indicates a visible param eter window grey means invisible e The right lower button pops up or closes the module information window upon pressing Grey means no in formation light blue means information available pur ple denotes an aborted routine Red indicates a visible information window Settings of ComplexAndEndstoppedResponses Compute endstopped responses F No K Yes Figure 2 Parameter window of module Com plexAndEndstoppedResponses which is il lustrated in Figure 1 A parameter window for the module ComplexAndEnd stoppedResponse
16. ithin the icon itself which is helpful if modules are relatively sim ple and networks are small otherwise the overview of the network is lost IBM s OpenDX 6 focuses on visualiza tion and includes around 180 different tools for data anal ysis and visualization OpenDX is open source software and is supported on many different platforms The weak point in openDX is the user friendliness for example no datatype is given between the connections which implies that the documentation needs to be addressed extensively Khoros 12 provides a programming environment with a small set of modules Due to this small set of modules new module development is a must Khoros provides tools to construct the graphical user interface for a module nev ertheless still a considerable textual programming effort is needed to construct a working icon within VPE Cantata A strong point of Khoros is that a network constructed in Cantata can be executed as a batch file without the use of Cantata since all modules are represented as executa bles AVS 9 provides a programming environment with a large set of different modules The construction of a work ing icon in AVS requires a considerable effort also AVS has very strong visualization tools and has business solutions in many different areas Drawbacks of AVS are its dependency on the environment and its inflexibility to user constructed data structures ViPEr 8 is a visual programming language that us
17. its parameters These pa rameters can be divided into 3 groups input parameters that are obtained from another routine internal parameters that are needed within the routine only and output parameters that are used by at least one of the subsequent routine calls Such routine in its general form is as follows F t fa PL 1 where f is the name of the routine and 7 o p the input IN 01 02 OM P1 P2 Input optional Input required Execute Internal parameter window T 4 Information window Host machine a Output Read input data i0 guiGetInput Input0 ANYTYPE OPT il guiGetInput Inputl ANYTYPE i2 guiGetInput Input2 UCHAR i3 guiGetInput Input3 LONG pO guiGetInteger P0 LONG p1 guiGetFloat P1 UCHAR Routine call f 0 il i2 13 p0 p1 00 o1 Write output data writeData guiGetOutput Output0 00 b writeData guiGetOutput Output1 01 Figure 3 a Graphical representation of the routine given in 1 with an explanation of the differently positioned buttons b C or C equivalent modified from the code generated by TiViPE and reduced to the relevant calls output and internal parameters A graphical representation of this routine call is given in Figure 3a A module is grap
18. rmation Renaming deleting and moving a module starts with the Module generator which generates or and deletes files depending on the type of action When files are generated the content of the CodelInfo file is used to generate the C source code After code generation has been completed a two step compilation takes place which results in a stand alone executable The file structure used by TiViPE is given in Figure 6 Contributions of different users are expected hence the file structure needs to be divided into two parts a pri vate user part and a public general part Users ini tially develop modules in their private directories given by MYTVPHOME When these modules are tested and ap proved they can be moved to the public TVPHOME di rectory which is accessed by multiple users The names of all public and private modules are stored in the 7iViPEfixed and TiViPE files respectively These files contain the full menu structure The Modules directory holds the information and source code of all modules The bin directory hosts an executable for every module When a module is modified Ti ViPE up dates the files and directories automatically Over time it is expected that many modules will be made available for TiViPE hence a clear and flexible way to structure files is necessary In TiViPE the user can specify a main entry name and up to 10 levels of sub menus The main entry is meant TiViPE file structure
19. s which contains 8 parameters is illus trated in Figure 2 The window gives a quick overview of all internal parameters that can be modified within the module TiViPE supports a small set of parameters three of them integer float and toggle are given in this example On top of every parameter window are four buttons The run button saves the parameters and executes the module when the module is finished it will automatically activate the subsequent connected modules the ok button saves the parameters only and a cancel button resets the parameters to the formerly saved state These three buttons yield rapid prototyping in a network as well as rapid testing for the module itself The help button pops up a window with html documentation about the module Its content has been partly provided by the user through the available documen tation tabloids 3 2 Visual Programming The TiViPE concept of visual programming is to wrap a routine that is constructed in a textual programming lan guage into a graphically represented unit The main reason for this concept is that there are many software libraries available but due to lack of documentation and a clear structure most of these libraries remain unused By making all routine calls available as graphical units together with appropriate documentation these routines can be made ac cessible through TiViPE In a C or C program a routine call is typically given by a name and between brackets
20. t name gt o in the obj directory The file CodeInfo idx in the misc directory keeps a list of all Modules and stores the makefile directives that are used by the module generator to construct modify or update the project file in the sre directory A Makefile is generated by qmake and is used by the program make to compile and in stall the generated source code 3 4 Available modules TiViPE is set up in such a way that initially the environ ment is empty i e there is not a single module available in the environment The environment provides the means to construct a module that is used as stand alone executable with minimal effort Currently around 60 different modules are available most of them operate on the Data5D structure a vector specified by 5 dimensions and one out of 10 supported data types they are subdivided into five different groups The first four groups cover the general aspects of arithmetic data manipulation input output and visualization The arithmetic group contains bitwise comparison sin gle and double operand trigonometry and standard mathe matical function operations On complex data the following modules are available splitting of real and imaginary part polar complex coordinate conversion complex conjugate and any normal datatype to complex conversion The data manipulation group contains routines for con version from one datatype to another and to normalize re duce append cut and p

Download Pdf Manuals

image

Related Search

Related Contents

PT50 alarmplus user manual        TFT 液晶ディスプレイ 19 型 -B 取扱説明書  BlackDiamond 12800 Series Switches Hardware Installation Guide      ENCONTRO COM A PALAVRA Levítico, Números, Deuteronômio e  

Copyright © All rights reserved.
Failed to retrieve file