Popular Post vugie Posted November 3, 2010 Popular Post Report Share Posted November 3, 2010 Name: lvODE Submitter: vugie Submitted: 03 Nov 2010 File Updated: 02 Mar 2011 Category: General LabVIEW Version: 2009 License Type: Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Author: Wojciech Golebiowski (vugie), w_golebiowski at tlen dot pl Name: lvODE Type: Library LabVIEW Version: 2009 Description lvODE is a set wrappers, an interface to ODE (Open Dynamics Engine) library written in C and used to simulate dynamics of rigid body systems, including interactivity and in real time. In the present state lvODE allows you to use almost the full functionality of ODE in the LabVIEW environment using object-oriented programming (LVOOP). Such simulations may be used, among others, for programming the control systems of robots and manipulators (as well as in the control systems themselves, i.e. for trajectory planning), for development and testing of artificial intelligence systems, for modeling of complex mechanisms and other physical systems, etc. lvODE is not a strict set of ODE wrappers. Although it uses the same concepts, the same terminology and most of the ODE functions are reflected, many of them have been grouped, data structures have been simplified, all in a user-friendly manner and taking into account specifics of LabVIEW environment. There are also few features not present in the original library which greatly facilitate programming – i.e. Object Manager. Further extensions (i.e. 3D Picture Control integration) are planned. Short preview movie: Briefly about the ODE ODE is a free and widely-known library designed to simulate systems of rigid bodies. The programmer defines the layout of bodies, their physical parameters and types of connections between them, the role of the library is to calculate the forces acting in the system and to determine position and velocity of all bodies in the next time step, while satisfying all defined relationships. Programmer is able to interfere in simulation in full range while it goes on. It allows for the accurate analysis of its results (access to all the physical parameters) as well as programming any degree of interactivity. ODE is designed specifically to perform real time simulations – it uses a first order integrator (the procedure to solve a system of differential equations), which is a compromise between speed and accuracy. Results generated are not as accurate as they would be using higher-order integrators, but it is stable, fast and flexible. The basic features of ODE include: Rigid body with arbitrary mass distribution Types of kinematic pairs (joints, constraints): ball, slider, hinge, suspension, universal (Cardan), linear and rotary actuators, contact, and combinations that are already listed Types of geometry used for collision detection: sphere, cube, cylinder, capsule, plane, ray, any shape in the form of triangle mesh, convex, heightfield Three types of spaces for fast collision finding Equations of motion derived using Lagrange multipliers Choice of integration method: the "full" method – slower, but more accurate, and quick iterative method An advanced model of contact and friction InstallationThe contents of the archive folder ("lvODE") should be extracted to directory \user.lib. After restarting LabVIEW the sub-palette "lvODE" appears in the User Libraries section, where all the necessary functions may be found. Or use the VIPM package.DocumentationThe documentation is located in the subdirectory 'doc' and it consists of the following files:ODE Manual.pdf - The original guide to the ODE. At least brief knowledge of it is necessary to understand the main concepts and mechanisms of library. Due to the use of the same terminology, it can also be a sufficient source to use the lvODE. The main difference from the original is the simplified naming convention. lvODE Class Hierarchy.pdf - graphical representation of a lvODE class hierarchy of classes library - not necessary to start programming, but it may help to understand certain concepts. lvODE Function Reference.pdf - a list of all public lvODE functions with descriptions and organized by class. Descriptions of the functions derive much of the original ODE manual, however, cover all the differences of the conventions and LabVIEW specifics. This document is definitely to be polished (better grouping, more detailed descriptions of each section, etc.) Files *. png - map of all pallets An integral part of the documentation are also descriptions in of context help for each VI. In large part they fit the descriptions in the file "lvODE Function Reference". Private functions are documented as well. Examples Example applications are located in "examples" subdirectory. There are few examples with varying degree of complexity, and with comprehensive comments in the code. These examples, supported by context help and (in difficult cases), reading a few chapters of the original manual should be sufficient to start programming in lvODE. Comments lvODE is not a finished project. Once the ODE itself is still being developed, second, not whole its functionality is currently implemented in lvODE. The major differences include: no support for trimesh, heighfield and convex geometries, the lack of a 2D Plane constraint, lack of gyroscopic mode for the bodies, single precision floating point numbers only. Few words about licensing. I publish lvODE under such a restrictive license (see below), because this is still experimental phase. I’ll appreciate any feedback which could help to make this library better and more stable. My further plans are to provide less restrictive free version and full-featured commercial one. Please contact me if you are interested. Comments on this approach are also appreciated. Version History v0.1.0: Initial release of the code. Support If you have any problems with this code or want to suggest features: please go to lavag.org and Navigate to LAVA > Resources > Code Repository (Certified) and search for the "lvODE" support page. License This work is published under the Creative Commons BY-NC-ND license (description and text of the license here and in license.txt) ODE library is distributed under BSD license (www.ode.org) Copyright © 2010, Wojciech Golebiowski Click here to download this file 9 Quote Link to comment
vugie Posted November 5, 2010 Author Report Share Posted November 5, 2010 I uploaded the VIPM package (thanks Jim for resolving the building issue). 2 Quote Link to comment
ShaunR Posted November 5, 2010 Report Share Posted November 5, 2010 Impressive. I don't have a valid use for this, but it is obvious you have spent a lot of time on this product. Many thanks for sharing it with the Labview community. Quote Link to comment
Mark Balla Posted November 13, 2010 Report Share Posted November 13, 2010 Certified 11-13-2010 Placed in General Category. Quote Link to comment
vugie Posted March 2, 2011 Author Report Share Posted March 2, 2011 I was asked for converting lvODE for 8.2 (the lowest possible LV version). So it is uploaded now - no package, only zip file. I verified only whether examples work, so please report if anything is broken. Quote Link to comment
vugie Posted March 14, 2011 Author Report Share Posted March 14, 2011 very awesome! That looks like hundreds of hours work to put that all together.... me = impressed Thanks, but not hundreds, and rather mechanical work except for few aspects. Not like a work of original ODE creators... Quote Link to comment
Philippe123 Posted July 12, 2017 Report Share Posted July 12, 2017 Vugie, this is excellent, thank you. I tried to implement the chain example with 3D Objects, but I need assistance on the 3D objects. When I rotate the view, the chain appears to rotate independently of the axes..... am I required to make a transformation myself? Also, the mesh reference is not available (closed?) if I do not keep the drawable reference.... is this normal? Also, how can I reference the mesh by name instead of by reference ? chain 3D.vi Quote Link to comment
vugie Posted August 23, 2017 Author Report Share Posted August 23, 2017 Sorry to miss your post, I'm not very often here recently. Quote When I rotate the view, the chain appears to rotate independently of the axes..... am I required to make a transformation myself? In my opinion the chain swings like it should. What could mislead you: You modified anchor position offset, so chain won't swing in YZ plane if this is what you expected. This chain is connected with ball joints. Due to cummulating numerical errors the chain may go off the plane after some time (however I'm not observing such behavior). To avoid it use hinge joint if your goal is to have bicycle-like chain. Proportions of the chain in 3D picture will be different (and more natural) than in 2D Graph, because apparently I left non-uniform scales there for x and y axes. Quote Also, the mesh reference is not available (closed?) if I do not keep the drawable reference.... is this normal? The mesh reference becomes invalid once assigned to the object. Instead you should get the object's drawable reference and use "To More Specific Class" primitive to be able to use SetMeshParams method again (picture attached). Quote Also, how can I reference the mesh by name instead of by reference ? You may use "Find Object" block to find an object by name and then get its Drawable property. Quote Link to comment
Riley Ilieva Posted February 10, 2021 Report Share Posted February 10, 2021 Thank you, this package and the examples are very useful and well documented! I have a question although this might be a feature that is not included in the ode library itself - is there any way to define a user defined geometry in lvODE, for example from an STL file, without having to write a new geometry class? Our workaround would be to have to build this as a composite object instead but that would be a lot more work if we want it to match the STL. Many Thanks, Riley Quote Link to comment
wenjie zheng Posted September 24, 2022 Report Share Posted September 24, 2022 Hi Riley i really needs your help for 64bits lvode.dll. to call in LabVIEW. Do you post the edition in 64bits dll? Looking forward for your reply. Thanks Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.