Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/13/2010 in all areas

  1. 1 point
    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 Installation The 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. Documentation The 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
  2. 1 point
    Name: Windows API Submitter: ShaunR Submitted: 09 Sep 2010 File Updated: 03 Jan 2011 Category: General LabVIEW Version: 2009 License Type: Other (included with download) Windows API Utilities. An eclectic set of wrapper VIs around some windows API functions. I wrote these many years ago (1998? wow!) but have used them to some extent in virtually all my windows programs. I've included all the original functions (accidentally re-compiled under LV 9.0) and just wrapped them up in a project and added the LAVA required stuff so your getting them "warts 'n all". Many functions have been superseded by LabView functions and I expect many people already have their own. But there are still some gems I couldn't do without and maybe someone will find them useful. Installation: Unzip to a directory of your choice. Required Packages: Labview 9.0 or greater Windows XP or greater (may work on earlier versions) Known Issues. None. Versioning: Current version 1.0. Contact: PM ShaunR on lavag.org (http://www.lavag.org) Click here to download this file
  3. 1 point
    1. What is this? This is a collection of VIs which let labview users use OpenCL without having to learn how to call DLLs themselves. Along with the VIs are two DLLs. Cloo.dll - Object Orientated CL, a OO wrapper library for OpenCL from the CLoo project. The CLoo.dll included is only there to keep VS2010 happy, you may want to download the latest version from the CLoo project page. Cloo4Labview.dll - a utility DLL I wrote containing some code that was easier to write in C# .net 2.0 than in labview. Source is included in the .zip 2. What is OpenCL? It lets you use your GPU to process lots of data. Similar to CUDA or Direct Compute, see http://en.wikipedia.org/wiki/OpenCL . 3. Screenshots Device properties of an ATI 5800: Device properties of an Intel Core 2 Quad 2.4GHz Q6600: OpenCL vector add test results: Vector Add test block diagram: 7. Disclaimer This project is still under development and is being released because it seems functional and others have expressed interest in it (Hey, maybe others will even contribute improvements!). It probably shouldn't be used in mission critical systems. Use of this software is entirely at your own risk. I hold no responsibility for anything bad that occurs through use of this code including system crashes, data loss, release of magic smoke, nuclear war or zombie apocalypse. I have no obligation to provide support, requests for help will be answered if and when I feel like it and have the time - I'm a PhD student, I have other things to do like write an FFT in OpenCL (I don't like apple's one), sleep and solve Britain's nuclear waste storage issues. 8. Download: CLoo4LabView.zip Hope this proves useful. Feedback, comments suggestions and improvements welcome. Have fun I seem to be having problems porting my whole post (It keeps saying "You must enter a post") So I'll try putting the rest of it here. 4. What has this been tested on? I've tested this on two computers and a total of three devices. 1. Computer 1 - GPU - ATI 5800 with ATI Stream SDK (as seen in device properties screenshot above) 2. Computer 1 - CPU - Intel Core 2 Quad Q6600 with ATI Stream SDK (as seen in device properties screenshot above) 3. Computer 2 - GPU - Nvidia Geforce 470 with Nvidia GPU SDK (will post screenshot in a few days) Testing has not been extensive - only the two programs shown above have been run on all machines (I also tested changing the vector add to a vector multiply - change the + to a * in the source text, and replace the + to a x in the block diagram for the comparison). 5. Any limitations? * This inherits limitations from it's dependancies. E.g. I don't think CLoo currently supports non-blocking reads at the moment, when CLoo does, you can download the latest CLoo .DLL and all will be well. * OpenCL doesn't support Double precision floats, if you wire a double to any of the polymorphic VIs they internally cast it to a float. If you are reading this in the future and the double data type is supported in OpenCL, you will probably want to make some changes to remove the casts and change the .net method calls to point to the double not the single version of the method. * I haven't included support for unsigned data types - if you want to use them, you can copy-paste-edit the appropiate VIs and C# code. 6. I have no CLoo! CLoo is available here: http://sourceforge.net/projects/cloo/ The best site I've found that talks about it is: http://www.opentk.com/
  4. 1 point
    I had to do some cleanup on the BD to figure out what was going on, I thought I would share the re-arranged version so everyone doesn't need to go through the same exercise as I did. OpenCL Lib Test.vi


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.