Public Repository

Last pushed: a year ago
Short Description
This image contains Ubuntu 14.04 with all dependencies needed to run the Phantom Omni software.
Full Description

Run command:

$ sudo docker run -ti --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --net=host gscar:PhantomOmni

Final steps

There are some additional steps required, but it's almost finished. These should be done whether you're using docker or not.


In order to enable communications with the device, we need to set read and write permission's on the device to everyone. You
can check what is your device using dmesg.

First, connect the device on the PC and wait a few moments. Then, run the following command:

$ dmesg | grep firewire

On my PC, I got the following output:

[    0.600300] firewire_ohci 0000:05:00.0: enabling device (0000 -> 0003)
[    0.666343] firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 4 IR + 8 IT contexts, quirks 0x11
[    1.166421] firewire_core 0000:05:00.0: created device fw0: GUID 0011066600000009, S400
[ 1243.251929] firewire_core 0000:05:00.0: phy config: new root=ffc1, gap_count=5
[ 1249.803286] firewire_core 0000:05:00.0: phy config: new root=ffc1, gap_count=5
[ 1252.790785] firewire_core 0000:05:00.0: created device fw1: GUID 000b990080df6000, S400

The last device created was fw1, then that's my Phantom Omni. From now on, we just need to change it's permissions:

$ sudo chmod a+rw /dev/fw1

If you're not sure which fw* is your Omni or doesn't bother setting all firewire devices permission's, just run:

$ sudo chmod a+rw /dev/fw*

This should be done everytime you reconnect the firewire device.


At this point the firewire version should already be functional, but the
ethernet still need two steps to work. First, you must change your IPV4 to
link-local only.
Second, you need to generate your config files for GTDD. This
works the same if you're doing the normal or docker way, but if you're using the
docker way, make sure you do these steps running the image.

$ cd /opt/geomagic_touch_device_driver
$ ./Geomagic_Touch_Setup 

A GUI should appear and you should select the Geomagic Touch as device model.
Then, click the "Add..." button and give your device the following name: Phantom
Omni. Just like that, starting with Phantom, separated with a blank space and
finishing with Omni. If the name is different, the ROS Driver won't be able to
find the device. Next, you have to pairyour device, selecting available devices
and clicking the " Pairing" button first on the GUI, then on the device itself.
If your device is not listed here, check the device communication running
/opt/geomagic_touch_device_driver/Geomagic_Touch_Diagnostic . Most of times, this happens because the IPV4 isn't
a link-local only connection. Now everything is ready to go, but if you're using
docker you'll have to generate config files everytime you exit and rerun the
image, as this is the docker way. If you want to commit the changes done to a
container, run the following command in a host terminal while the images is
still running:

$ sudo docker container ls 

From there, copy the Container ID and use it in the following command:

$ sudo docker commit <ContainerID> <tag_prefix:tag_suffix>

This will save the image running on ContainerID to a tag_prefix:tag_suffix image
name. If you use the same name as the running image, it will be overwritten. I recommend preserving the original name
as to avoid confusion with created images.

Launch files:

If you want to use a firewire device, run:

$ roslaunch omni_driver firewire.launch

If ethernet is the one you're using, then:

$ roslaunch omni_driver ethernet.launch

If you want to teleoperate one of them, start the Master as you would normally
then run the slave i.e:

$ roslaunch omni_driver firewire.launch
$ roslaunch omni_driver ethernet_slave.launch



Can't find the device

Please check read and write permissions on /dev/fw*. Try reconnecting the device and running dmesg to check if connection was succesfull.


Can't find the device

Please check config files on "/opt/geomagic_touch_device_driver/config". Please make sure the device was properly configured as explained on the software readme. Please note that any name other than "Phantom Omni" will not work. If using the Docker Way, please make sure you commit changes on the container after configuring the device before exiting, as changes are not automatically saved on docker.

Project location

For more information, please visit

Docker Pull Command