Simulation of Flexible Tubes in VR
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Simulation of Flexible Tubes in VR
Florian Mannuß1,Andr´e Hinkenjann1,Gernot G¨o bbels2,Martin G¨o bel2
1University of Applied Sciences Bonn-Rhein-Sieg,Sankt Augustin,Germany {Andre.Hinkenjann|Florian.Mannuss}@fh-brs.de
2fleXilution GmbH,Cologne,Germany
{Gernot.Goebbels|Martin.Goebel}@flexilution.de
Abstract.We present a Virtual Reality application enabling interac-
tive,physically correct simulation of tube-likeflexible objects.Our objec-
tive was to describeflexible objects by a set of parameters(length,diam-
eter and material constants)instead of rigid geometry(triangle meshes)
and to give the user the possibility to add,delete and manipulate those
flexible objects in a stereo projected environment in real-time.
1Introduction
CAD-Tools createflexible,tube-like objects as static geometries during the con-struction process,but the layout and behavior of these objects is not necessarily physically correct.A more favorable way is to describe allflexible objects using a predefined set of parameters and let a simulation return a correct triangle mesh. Complete cable-trees can be constructed by joining cables or single cables can befixed at a cable tie.A positive result of such a VR simulation system is a reduction of development time,eg.in automotive industry,the domain of our application.
A simulation engine for tube-like objects must provide real-time frame rates of at least15fps.The simulation must coincide with the shape of the real tube within a small error.These two characteristics are fulfilled by the simulation packagefleXengine.For details about the simulation software,see[1].We use this software in our system without modifications.
2Related Work
Two popular VR frameworks are VR Juggler[2]and AVANGO[3].VR Juggler provides interfaces for a wide variety of graphical interfaces,but applications are bound to the chosen graphical interface.When the programmer needs to replace the renderer,the source code of the application has to be rewritten.The system can be extended through er interaction is decoupled from the base system and is part of the application.AVANGO is very closely coupled with the OpenGL Performer library[4]and extends it with a VRML-likefield interface. User interaction is again the task of the application programmer.Both systems
2Florian Mannuß,Andr´e Hinkenjann,Gernot G¨o bbels,Martin G¨o bel
do not know the concept of a generic”renderer”that works on scene data and produces some output(visual,auditory etc.).For the task presented here,a simulation renderer that works on tube data is needed.Our own framework allows the use of generic renderer plugins(cite ommited for review).
In[5],the authors mention the inclusion of the simulation of hoses and wires in their VR system without describing their integration approach.Theflex-Engine has recently been included into a commercial VE software package[6]. Unfortunately,the integration process is not published and cannot be compared at this stage.
Gr´e goire and Sch¨o mer[7]describe interactive simulation offlexible parts. Their paper however is focused on the simulation approach and the mathematical backround while this paper focuses more on the integration into a VR software. For an overview of other simulation approaches see their paper.
3VR-Framework and Setup
The application was realized with our own framework.It contains a very small kernel with management functionality and abstract interfaces to plugins as seen infigure1.All functionalities implemented in plugins are loaded at run time.
Fig.1.Overview of the VR framework with plugin interfaces Input device receives and preprocesses the data from a physical input device. An action is responsible for manipulating the virtual scene.The scene represen-tation is separated from the renderer.Arbitrary renderers can be used for the same scene representation.A renderer is not limited to graphical output.It is a synonym for all tasks that work on the virtual scene(an audio renderer could process audio scene data,eg).
To achieve renderer independency,all scene data has to be encapsulated. Therefore,an abstract scene layer is needed through which all possible renderers
Lecture Notes in Computer Science3 can access the scene data.We call this abstraction layer virtual objects and virtual object attributes.
As a consequence of this design,we achieve independence of any third party scene graph,audio or physics library in the kernel.
Plugins are not a hard coded part of an application.All plugins that have to be loaded at start up time are specified and configured using a configurationfile. In this configurationfile virtual objects with their attributes can be specified, too.
The hardware setup of the system is shown infigure2.
Fig.2.Hardware setup for the application.a)is a tablet PC providing the user inter-face,b)is the input device server using a Space Mouse and c)is the application PC. Two projectors are connected to the appication PC to provide stereo output.
4Tube Interaction and Parameter Extraction
In our application,a tube consists of tube parameters,like length,inner/outer diameter,minimal bending radius,material constants or torsion.In addition,the handles of the tube must be specified.Overall,there are three different types of handles as shown infigure3:The handles marked with(a)are normal handles.If such a handle(except end-handles)is moved,the tube slides through the handle.
A handle of type(b)is called a split handle where the tube isfixed at the handle. This handle is created by splitting the tube into two independent tubes at the split handle position and by joining the two newly created end-handles.Join handles(c)allow for the creation of cable trees.When moving such a handle it behaves like a normal handle.A splitted join handle behaves like a split handle when moving the handle.
In order to extend our VR framework for the simulation and interaction of flexible,tube-like objects,three new plugins had to be written(for the graphical representation and the rendering we used Open SceneGraph[8]based plugins).
4Florian Mannuß,Andr´e Hinkenjann,Gernot G¨o bbels,Martin G¨o bel
Fig.3.Two tubes showing all possible handle types.a shows a normal handle,b a split handle and c a join handle
fleXData(scene plugin)adds two new attributes for single parameters and for handle parameters.A single describes a tube object.This is the data the fleXRenderer needs.
fleXRenderer(renderer plugin)is the simulation component.Its output is
a triangle mesh for every tube object in the scene.It is added as a trian-
gle mesh attribute to the virtual objects.The simulation is done using the fleXEngine library.
FleXActions(action plugin)adds all actions needed to create,delete,mod-ify and interact with the tube and handle objects.
Due to external constraints,all actions had to be usable with a one-button input device.The minimal requirements to the input device are to provide the position,orientation and one button state.Position data and orientation can either be absolute or relative.All actions are part of thefleXActions plugin and every activated action stays active until another action is activated.
We identified the following actions:Create a single with handles;Add new handles at the beginning,end or in between an existing tube;Split/Unsplit a handle;Join/Disjoin;Delete a handle;Delete a single or handle.Utility actions are:Select single,handle or background.
Create single produces a new single(tube object)and adds a new handle to the intersection point of the virtual input device representation and the back-ground surface until the user clicks on the newly created single.After this inter-section the creation process isfinished and a new single can be created.In order tofind the intersection point and the termination criteria the select background and select single actions are utilized.
The orientation of the handle is calculated using the surface normal n at the intersection point and the normalized vector v from the last handle position to the intersection point.
More complex actions are implemented as state-machines.The process of adding one or more handles at the front of a single is the following:First,the
Lecture Notes in Computer Science5 single has to be activated.On button down we check if a single was hit.If this
single is still hit on button up we select this single,otherwise we jump to thefinal
state.With this two phase mechanism a wrong selection process can be aborted.
Joining is done by selecting two handles.After the second handle was selected both handles are joined.Thefirst selected handle is the master handle and the second is mapped onto it by maintaining its orientation.
Disjoin releases the joined handles of the selected handle.If more than two handles are joined all handles are released.
Every handle can be split except for the two end-handles of a single.When performing the split operation a new single will be created and all handles right of the split handle are transfered to the new single.For the split handle a new handle will be created.After that we have two singles and by joining the back-handle of the left and the front-handle of the right single the split handle is created.If the handle that has to be split is already a join-handle,then all joined singles have to be split and then joined again.
Unsplit merges two singles into one single.Again,if the split-handle is also joined we perform the unsplit operation for all joined handles that are splitted.
By using delete single all handles of a single and the single itself are deleted. If there is a split-handle,the connected single will be deleted either.Join-handles are not touched and only the handle of the single we want to delete is removed. When deleting a handle more work has to be done.The simple case is where we only delete a simple handle.No additional work has to be done,except if the single had only two handles left.In this case the whole single will be deleted. When deleting a split-handle,the two singles have to be joined again and in case of a join-handle all handles connected through this join have to be deleted,too.
Extraction of tube parameters
The initial input to our system is a CAD model of the tubes,consisting of tri-angulated surfaces.Unfortunately,the quality of the triangulation is sometimes poor and needs to be manipulated by hand to achieve good visualization and parameter extraction results.When extracting tube parameters three values can be obtained,the tube length,inner and outer diameter.All values must be ex-tracted from the geometry.This leads to the constraint that every single must be represented by one geometric object.However,in practice sometimes more than one single is stored in one geometry node leading to the task to separate every single.
The algorithm to extract the tube parametersfirstfinds the two end-points of the single.If the tube has only an outer diameter,all edges belonging only to one triangle are part of the border.For a single with an inner and outer diameter,if the surface normals satisfy− ≤n1·n2≤ with ≈0.1and n1and n2being the normals of the triangles sharing an edge,the shared edge belongs to the border.After all border edges are determined,all connected edges must be grouped.Finding the inner/outer diameter is done byfinding the two most distant vertices in those edge groups.Forfinding the length of the single a greedy algorithm is used that chooses the edge where min(e act·e n)for all adjacent edges e n of the actual edge e act.In the next step the path vertices are
6Florian Mannuß,Andr´e Hinkenjann,Gernot G¨o bbels,Martin G¨o bel projected along the surface normal of the actual vertex to the opposite side of the single.The mid-point of the line from the actual vertex to the projected vertex is one of points on the middle line of the single.As a last step the distances between all mid-points is summed.The result is the length of the single.
2D User Interface
Because of our goal to use all actions with one button a method to toggle between actions is needed.To provide the possibility to change the numerical values of a single we decided to create a2D user interface(UI).Figure4shows a screen shot of the GUI.On the left side the attributes of a single are displayed and
Fig.4.2D user interface for changing single attributes and to activate an action. on the right all actions implemented for this application are shown as buttons. After a single has been selected its attributes are displayed in the2D UI.Se-lecting a single can either be done through select single or create single and add front/back/position.Parameter changes are immediately executed on the sin-gle virtual object.By tapping an action button the action associated with this button is activated.The UI is implemented using the remote object invocation plugin to be able to run on a tablet PC.
5Conclusion and Future Work
We presented a VR application for interactive cable and wire simulation.With this application the user is able to interact withflexible cables and hoses in real time.The system has been presented using a setup like that of photograph5.
Despite the use of stereoscopic output the localisation of objects can be im-proved.Very often it is hard to exactly locate objects in space.This can be improved by adding further visual clues like shadows or depth offield informa-tion.
Currently,we use a Space Mouse as input device.More intuitive input devices should be evaluated to enable natural interaction with the virtual world.
Another important extension is collision detection and handling.At the mo-ment,no collisions are intercepted and the cables can intersect each other or the
Lecture Notes in Computer Science7
Fig.5.Photo of the application installation.The red tubes areflexible objects.The user in front of the projection wall uses the tablet PC with the2D user interface.Model courtesy DaimlerChrysler.To the right,the corresponding screen shot is shown. background model.However,correct collision handling is crucial for assembly simulation and digital mock up.
At the moment,the presented system is a stand alone application.For using the application in an industry production process,a seamless integration in the construction process is essential.When this is done,a detailed comparison with the traditional design process is mandatory.
Acknowledgements
This work was supported by the Ministry of Innovation,Science,Research and Technology of the State of North Rhine-Westphalia under grant number 80081505.
References
1.Goebbels,G.,Hornung,N.,Klein,U.,M¨u ller,S.,Nikitin,I.,Wienss,C.:flexengine:
Highly accurate real-time simulation system for cables,hoses and wiring harnesses with contacts.In:55th IWCS2006,International Wire and Cable Symposium(2006) 2.Cruz-Neira,C.,Bierbaum,A.,Hartling,P.,Just,C.,Meinert,K.:Vr juggler–an
open source platform for virtual reality applications.40th AIAA Aerospace Sciences Meeting and Exhibit2002,Reno,Nevada(2002)
3.Tramberend,H.:Avango:A Distributed Virtual Reality Framework.In:Proceedings
of AFRIGRAPH2001,1st International Conference on Computer Graphics,Virtual Reality and Visualization in Africa,ACM(2001)
4.Rohlf,J.,Helman,J.:Iris performer:a high performance multiprocessing toolkit for
real-time3d graphics.In:SIGGRAPH’94:Proceedings of the21st annual conference on Computer graphics and interactive techniques,New York,NY,USA,ACM Press (1994)381–394
8Florian Mannuß,Andr´e Hinkenjann,Gernot G¨o bbels,Martin G¨o bel
5.Gomes de S´a,A.,Zachmann,G.:Virtual reality as a tool for verification of assembly
and maintenance puters&Graphics23(1999)389–403
6.ICIDO:Ido:Flexibles.Web page:www.icido.de/produkte/software/idoflexibles
(2007)
7.Gr´e goire,M.,Sch¨o mer,E.:Interactive simulation of one-dimensionalflexible parts.
In Martin,R.R.,Hu,S.M.,eds.:Symposium on Solid and Physical Modeling,ACM (2006)95–103
8.Burns,D.,Osfield,R.:Open scene graph a:Introduction,b:Examples and ap-
plications.In:VR’04:Proceedings of the IEEE Virtual Reality2004(VR’04), Washington,DC,USA,IEEE Computer Society(2004)265。