This page documents the development status for using the Novint Falcon with the VRPN virtual reality network software. The primary goal is to enable the use of the Falcon as a cost efficient haptic device for use with Interactive Molecular Dynamics, particularly in combination with but not limited to the VMD visualization software.
A very usable implementation (= it works very well for me and several other testers) that has a complete tracker and button implementation and some force feedback functionality (sufficient for use with VMD) is ready and has been merged back into the official VRPN distribution as of version 7.27. Development will continue and sources remain available through a public git repository. See below for how to access it. The code is based on the public VRPN git repository.
Source Code Access
Access to the sources in the git repository is handled via http or git protocol similar to other git repositories using:
git clone http://git.icms.temple.edu/vrpn-icms.git vrpn-icms
git clone git://git.icms.temple.edu/vrpn-icms.git vrpn-icms
and then kept up-to-date with:
Alternatively, you can download a snapshot archive of the latest version in
.tar.gz format or in
For instructions to compile libnifalcon and vrpn-icms, please see the page Compilation on Linux
Binary packages compiled on a 64-bit Red Hat Enterprise Linux 4 with support only for the Novint Falcon and the NULL device is available under: http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/VRPN-07.28.ICMS-RHEL-4-x86_64.tar.gz. A similar version 32-bit is available at: http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/VRPN-07.28.ICMS-RHEL-4-i686.tar.gz. Both packages contains the VRPN server, many test clients and headers and libraries. A 64-bit MacOSX version is available at: http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/VRPN-07.29-Darwin-x86_64.dmg. The falcon support library is compiled in statically, so no falcon package is needed.
Precompiled binaries of the
falcon_cli_test program are available at: http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/falcon_test_cli.Fedora-10.i686.gz, http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/falcon_test_cli.Fedora-12.x86_64.gz, and http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/falcon_test_cli.MacOSX-10.6.x86_64.gz These are standalone executables. Simply download and uncompress them ,and then make them executable with
chmod +x falcon_test_cli.*. These executables can be used to test the functionality of the falcon device by itself. The binaries were compiled on Fedora 10 and 12 with libusb and boost linked in statically for improved portability. The built in help lists the available tests.
These binaries are provided for your convenience, without any support, and may or may not be fully up-to-date. If you want to have binaries that match your platform best and have all bugfixes included, better compile from the sources. Older and additional binary packages can be found at: http://klein-group.icms.temple.edu/akohlmey/vrpn-icms/
- a Falcon, of course.
- The VRPN code. You can use the official VRPN distribution or the code from this site. It has only been tested on Linux so far. See above for how to access source code or download precompiled binaries.
- libnifalcon (which requires libusb-1.0 for Linux and MacOS X, libusb-1.0 or ftd2xx for Windows, cmake and boost), if you need or want to compile the server for yourself.
- A standard VMD-1.9 installation (no change to VMD should be required). There have been some recent indications that on some machines the (older) VRPN client code in VMD is not fully compatible with the newer VRPN server code used for VRPN-ICMS. You can download VRPN-ICMS compatible alpha test binaries from http://www.ks.uiuc.edu/Research/vmd/alpha/.
- The .vmdsensors file attached below (good for one or two falcons).
- The vrpn_server configuration file vrpn-novint.cfg attached below (or vrpn-2xnovint.cfg in case you have two falcons connected).
- On MacOS X you have to add the following two lines to the file
/etc/services or else the
vrpn_server will not listen on the designated port and VMD cannot contact it.
- The Falcon has to be plugged into a powered USB-2.0 hub. This is
consistent with what the libnifalcon documentation says and in contrast
to what the documentation from Novint that is bundled with the Falcon says.
- When using multiple Falcons on the same machine, they need to be "homed" individually and then kept in that position until all are calibrated.
- Occasionally the Falcon may need to be "homed" again. To initiate a reset, press all four buttons on the effector and follow the instructions in the vrpn_server terminal window. When using multiple falcons, all of them will need to be re-calibrated.
- Eliminate IMD related segmentation faults in VMD.
- Binaries for MacOSX (64-bit x86 done) and Windows.
- More demo examples, also using different MD codes.
- "Smoothness" improvements. Requires changes in the MD codes LAMMPS/HOOMD/NAMD and VMD
- Complete support for more types of force objects in VRPN (those are not needed for VMD, but should be done for the sake of completeness and pure hack value).
Some example inputs are attached below to demonstrate the usage. The general procedure is, that you first need to compile and install the VRPN server with support for the Novint Falcon enabled, which means that you first have to download and compile libnifalcon with the patches applied that come with the VRPN distribution. Then you plug in the Falcon and launch the VRPN server with
vrpn_server -f vrpn-novint.cfg. This will trigger the loading of the firmware and a recalibration. When the LED on the Falcon is red then pull the grip all the way out and then straight back until it turns blue. When the LED is blue, pull the grip all the way out again to activate the device. On rare occasions, this calibration does not work the first time, just stop the server and try again. If the firmware doesn't load, then you are probably not using a suitable USB hub. Once the server is running and you need to recalibrate, press all four buttons of the effector at the same time and the procedure will repeat. Now you can start your IMD enabled MD code with one of the examples below. Then copy the .vmdsensors file into your home directory, or set the environment variable VMDSENSORS to point to the file, or copy it into the directory where you installed VMD, and launch VMD with the corresponding .vmd state file. This should connect VMD to the waiting MD simulation and start the IMD session. To enable the falcon in VMD, type either "play falcon.tcl" or configure it manually using the Tools dialog.
Inputs and tutorials for Interactive MD with NAMD can be found on this page: http://www.ks.uiuc.edu/Research/vmd/imd/tutorial/.
Bug reports, Comments
Please add them to this page in the designated area below, or send me an e-mail.
Many thanks go to Tom Anderson of Novint
for donating two Falcons
to help with the implementation and to Greg and Gary Scantlen of Creative Consultants
for making the contact and being supportive and excited about even the tiniest progress.