Starting with the technical description, Project VIMPHIN is an Open Source Haptic Interface device with supporting software libraries. In simpler terms, it’s a piece of sophisticated hardware that feeds back it’s state and position into a computer, allowing interaction with the device.
What is the purpose of such a device? Interestingly it doesn’t have a specific purpose. It can be used for anything from plotting a 3D object to reproduce in a software environment, to state-of-the-art medical training simulations. The real purpose of this project is to lower the cost of the technology, making it affordable and accesible to a wider range of interested parties, including hobbyist robotics fanatics.
The following video explains some of the features of the setup. The software used for the demonstrations is DarkGDK, which allows for rapid development of numerous scenarios. DarkPHYSICS is also being used to create dynamic environments for the hardware to interact with. Using the XML interface, connectivity to the DarkGDK testbed is straightforward.
I asked Diego Spinola, the man behind the technology, why DarkGDK is his preferred language for this project. “I find DarkGDK to be one of the best general purpose 3D Engines out there” says Diego. “It is very cost effective during development, can significantly shorten development time of proof of concept and demonstrations, as well as deliver quality results .It is absolutely great for presenting 3d data in simulations and really easy to integrate with other libraries/drivers/processes due to the versatility of C/Cpp. I also used to do that before DarkGDK with IanM’s plugins for DarkBASIC Professional, but DarkGDK made it easier. When you’re troubled by ‘the whooshing sound that deadlines make as they fly by’ (Douglas Adams) It’s good to know that your 3D engine won’t give you any trouble.”
Diego has also provided further insight into the way the hardware interfaces with DarkGDK. “The 3D Simulation runs inside the DarkGDK app and relays information to the Driver Process via Sockets (for this part I’ve used wxwidgets libraries which work great with DGDK) fetching the manipulator information (positions /rotations) and sending the appropriated feedback messages (resistance to force, collision response) back to the Driver Process.
“Another cool feature of VIMPHIN is that it is physically re-configurable; you can reposition each link/joint to create your own personalized manipulator/joystick and with minimal configuration on the DarkGDK objects’ limb-structure (which I use to implement forward kinematic on these demos)”
Following on from the earlier video, haptic feedback has also been introduced and demonstrated. This allows the hardware to react to the software environments, such as increased resistance when dropping into a virtual water tank, or hitting a wall. The virtual environment will be able to react dynamically and haptic feedback will be adjusted accordingly. Again, a good example is a collapsing wall which will be accounted for by the hardware as the scene progresses.
You can follow this project at http://www.hackeneering.com/, where you will find more details and videos, and can keep up to date with future progress.