-
Notifications
You must be signed in to change notification settings - Fork 2
Installation with the Geomagic Touch
Linux drivers and development tools are available at http://dsc.sensable.com/index.asp (if this link does not work anymore try http://developer.geomagic.com or google "openhaptics". This is a forum, one must be logged in to see the content.
Installed software so far (june 3rd 2016):
- the driver for ubuntu 14.04 using the default install script. 2 utilities are provided: setup and diagnostic.
Look for geomagic_touch_device_driver_2016.1-1-amd64.tar.gz
or similar, then run the provides install
script (as root).
- the sdk. It seems to work when the proper environment variable is defined. Look for
openhaptics_3.4-0-developer-edition-amd64.tar.gz
and launch the providedinstall
script (as root).
-
The Geomagic driver ships with an outdated version of QT5 that is installed in its lib/ path. Here we suggest you a way to avoid this version to not interfere with other QT programs (iCub GUIs for instance).
-
Explanation about this version of Qt:
In the "install" script that you launch to install the Geomagic, you can read the following lines:
#Set path for GTDD_HOME, LD_LIBRARY_PATH, QT_PLUGIN_PATH echo -n "SETTING ENVIRONMENT VARIABLES ..... " echo "export GTDD_HOME=/opt/geomagic_touch_device_driver" > /etc/profile.d/geomagic.sh echo "export LD_LIBRARY_PATH=/opt/geomagic_touch_device_driver/lib" >> /etc/profile.d/geomagic.sh echo "export QT_PLUGIN_PATH=/opt/geomagic_touch_device_driver/lib/plugins" >> /etc/profile.d/geomagic.sh
So, even if you choose a folder to install the software, it will add the QT path and change the LD_LIBRARY_PATH thanks to the file geomagic.sh
(which is launch directly when you open a terminal). Then, this is this old QT5 version that is used.
-
Solution:
You can move thisgeomagic.sh
file in another directory (e.g. not in/etc/profile.d
) and create a script that launch either thisgeomagic.sh
and your program. -
Another environment variable to take care:
The doc for the yarp drivers says:
In Linux, remember to set LC_NUMERIC=en_US.UTF-8 in the environment, prior to pairing the device. This will make the driver work outside US.
Do it ! even if everything seems to work fine (geomagic tools, yarpdev running happily...), not doing it results in wrong (or fixed) positions for the arm.
A "link-local" connection linked with the USB-ethernet adapter has been created. It should be automatically configured when the device is connected.
Instructions for a standard ubuntu 14.04:
- create a new connection (look for the network manager icon then
edit connections...
, thenadd
a new one) - choose and create an
Ethernet
connection - choose a meaningful name for the connection (geomagic)
- in the Ethernet tab: choose the device MAC address (most probably the one associated with eth1 on a standard laptop)
- in the IPv4 Settings tab, choose the
Link-Local Only
method - save
Plug the device. The connection may take a few seconds to be active.
Important information about our haptic device: Device serial number: 15089002443
As specified in the README, you have to "pair" the device using /opt/geomagic_touch_device_driver/Geomagic_Touch_Setup (see the doc in /opt/geomagic_touch_device_driver/hardware_documentation/Geomagic Touch_User_Guide.pdf part RUN GEOMAGIC TOUCH SETUP TO IDENTIFY AND PAIR THE DEVICE) Also, you have to calibrate the geomagic with /opt/geomagic_touch_device_driver/Geomagic_Touch_Diagnostic. To summarize, do: /opt/geomagic_touch_device_driver/Geomagic_Touch_Setup An GUI is then open. In this GUI, do: Add a "Device Name" that correspond to the connection (geomagic). Then, click on the "Pairing" button. on the haptic device, click on the "Pairing" button (on its back, as shown in this photo. The connexion should be done, in the GUI click on "Apply" and then "Ok". Next time, you will have to select this device name and re-do the pairing. By launching /opt/geomagic_touch_device_drie/Geomagic_Touch_Diagnostic and by following the instruction, you should calibrate the Haptic Device and see how to use it.
- Power supply
- ethernet using provided usb-to-ethernet device
There is no on/off button, unplug if necessary... :-(
Before being able to use it with yarp and iCub, you need to install:
-
yarp (from github bleeding edge)
-
yarp haptic devices (from github: https://github.com/robotology/haptic-devices) Note: you will have to modify $hapticdevice_DIR/share/hapticdevice/context/geomagic/geomagic.xml to put in the id parameter the name of your device (geomagic)
-
icub main
-
icub contrib
-
gazebo 7 (or more recent)
Run
yarpserver
Then, launch the script geomagic.sh:
export GTDD_HOME=/opt/geomagic_touch_device_driver
export LD_LIBRARY_PATH=/opt/geomagic_touch_device_driver/lib
export QT_PLUGIN_PATH=/opt/geomagic_touch_device_driver/lib/plugins
export LC_NUMERIC=en_US.UTF-8
and run
/opt/geomagic_touch_device_driver/Geomagic_Touch_Setup
Normally, if your computer is well connected to the geomagic touch, the device model is Geomagic Touch, then click on "pairing" and click on the geomagic button on its back, as shown in this photo. Now run
/opt/geomagic_touch_device_driver/Geomagic_Touch_Diagnostic
Click on the right arrow until the calibration is done. If there are problems, for example network errors, go back to the Setup, create a new device of type "geomagic touch", with a new name (for example "geo") and redo the scan and pairing. You should then run the diagnostic again and check that it is done with this new device with the new name you chose. The calibration setup will make you test the geomagic (kinematics, force feedback, etc). Finally launch:
yarprobotinterface --context geomagic --config geomagic.xml
A couple of ports are created, you can see the device state (a vector of size 8: position, orientation, button1, button2) by reading state:o.
First launch:
yarpserver # do the Setup and calibration of the geomagic too
yarprobotinterface --context geomagic --config geomagic.xml
iCub_SIM
simCartesianControl --robot icubSim
iKinCartesianSolver --part left_arm
In order to test this setup it might be a good idea to try tutorial_cartesian_interface from motorControlAdvanced in icub-tutorials. If the left hand is moving happily in circles then all should be ok.
Now build the sample from https://github.com/inria-larsen/geomagic_touch:
git clone https://github.com/inria-larsen/geomagic_touch.git
cd geomagic_touch/test_geomagic_yarp
mkdir build
cd build
cmake ../
make
./bin/test_simple --robot icubSim --part left_arm
If all is well the left arm in the simulator should follow the haptic device (a bit slowly at the moment....). The movements should mimic the movements of the user's left arm (e.g. it might be simpler to have the haptic arm on your left)
First launch:
yarpserver # do the Setup and calibration of the geomagic too
yarprobotinterface --context geomagic --config geomagic.xml
gazebo # the insert an icub in the scene
wholeBodyDynamicsTree --autoconnect --robot icubGazeboSim #see edit message
simCartesianControl --robot icubGazeboSim
iKinCartesianSolver --robot icubGazeboSim --part left_arm
The cartesian controller is using a bunch of ini files (see share/iCub/contexts/simCartesianControl/ ) that are meant to be used with iCub_SIM, not gazebo. You may have to change:
- the robot name to
icubGazeboSim
-
PositionControl
toon
instead ofoff
in simCartesianLeftArm.ini and simCartesianRightArm.ini (and put this copy files into the directory from where you launch simCart/iKinCart).
In order to test this setup it might be a good idea to try tutorial_cartesian_interface from motorControlAdvanced in icub-tutorials. Don't forget to use --robot icubGazeboSim If the left hand is moving happily in circles then all should be ok.
Now build the sample from https://github.com/inria-larsen/geomagic_touch:
git clone https://github.com/inria-larsen/geomagic_touch.git
cd geomagic_touch/test_geomagic_yarp
mkdir build
cd build
cmake ../
make
./bin/test_simple --robot icubGazeboSim --part left_arm
If all is well the left arm in the simulator should follow the haptic device (a bit slowly at the moment....). The movements should mimic the movements of the user's left arm (e.g. it might be simpler to have the haptic arm on your left)
This manual is maintained to facilitate the life of our lab members in getting started with our robots. It is not an " official" guide and it is maintained at our best. If something does not work, please tell us or write an issue. Contributors: Serena Ivaldi