The device is currently only supported in Linux using a Sensoray S826 DAQ PCIe extension card. As progress is made by the community we expect to switch to USB and other interesting alternatives that can be used by any computer and operating system. For now, you will have to get hold of a Sensoray card (about $600) and use Linux. With that said, setting it up is pretty easy. Just follow our PC/Ubuntu Setup Guide below.
We provide an extension to the Chai3D 3.0.0 C++ haptics & graphics software library. Chai3D comes with a number of demo programs that you can run out of the box with WoodenHaptics as long as you copy in our device files and recompile, as instructed below.
Configure Your Device
What would WoodenHaptics kit be if you could only use the default design? As you modify the design, i.e. by changing the length of the device's bodies, you have to let the software know so that it can compute the correct position and forces. In addition you have to set or tune parameters that will affect how objects will be rendered with your device. The most importat property here is the stiffness constants, which set too low will render objects very "mushy" and too high might cause unwanted vibrations.
The first time you start the device it will create a file in your home folder called woodenhaptics.json. Edited this file with a text-editor (e.g. "gedit"). It's default content is (without the unit column):
{ Unit
"diameter_capstan_a": 0.01, m
"diameter_capstan_b": 0.01, m
"diameter_capstan_c": 0.01, m
"length_body_a": 0.08, m
"length_body_b": 0.205, m
"length_body_c": 0.2, m
"diameter_body_a": 0.16, m
"diameter_body_b": 0.12, m
"diameter_body_c": 0.12, m
"workspace_origin_x": 0.22, m
"workspace_origin_y": 0, m
"workspace_origin_z": 0.08, m
"workspace_radius": 0.1, m
"torque_constant_motor_a": 0.0603, A (see motor datasheet)
"torque_constant_motor_b": 0.0603, A
"torque_constant_motor_c": 0.0603, A
"current_for_10_v_signal": 3, A
"cpr_encoder_a": 4096, Quadrupled Counts Per Revolution
"cpr_encoder_b": 2000, Quadrupled Counts Per Revolution
"cpr_encoder_c": 2000, Quadrupled Counts Per Revolution
"max_linear_force": 12, N
"max_linear_stiffness": 5000, N/m
"max_linear_damping": 8, N/(m/s)
"mass_body_b": 0.17, Kg
"mass_body_c": 0.11, Kg
"length_cm_body_b": 0.051, m to center of mass from body a
"length_cm_body_c": 0.091, m to center of mass from body b
"g_constant": 9.81 m/s^2; 0 = no gravity compensation
}
PC/Ubuntu Setup Guide
We recommend using Ubuntu 14.04. If you start with a fresh install of Ubuntu, you probably first want to enable proprietary graphics drivers (search for "Additional Drivers" in the start menu). This to ensure nice 3D graphics framerates. We have successfully used a computer with low-end AMD Athlon 5350 APU (a CPU with built-in GPU).
0. Install dependencies:
sudo apt-get install build-essential libusb-1.0-0-dev \
freeglut3-dev libasound2-dev gcc-multilib
1. Get Chai3D:
wget http://web.stanford.edu/class/cs277/resources/downloads/chai3d-3.0.0-Makefiles.tar.gz
tar -xzvf chai3d-3.0.0-Makefiles.tar.gz
2. Copy in Chai3D woodenhaptics extension:
wget http://csc.kth.se/~jofo02/chai3d-3.0.0-woodenhaptics-extension.zip
unzip chai3d-3.0.0-woodenhaptics-extension.zip
cp -r chai3d-3.0.0-woodenhaptics-extension/* chai3d-3.0.0/
3. Compile:
cd chai3d-3.0.0
make -j5
4. If you have not installed the Sensoray drivers before:
cd chai3d-3.0.0/external/s826
tar -xjvf sdk_826_linux_3.3.7.tar.bz2
cd sdk-826-3.3.7_linux
make modules
sudo make install
modprobe s826