Monthly Archives: April 2010

Haptics: First impressions of the Novint Falcon

Haptic feedback has been in the process of coming of age for a good long time. Logitech released the force-feedback iFeel mouse (I swear I am not making this up) about a decade ago (see review, slightly more cynical review).  It got a few headlines at the time, but eventually somebody pointed out that it was essentially a mouse that went ‘buzz’, so that was that. On the other side of the scale, the CS dept at the University of Bristol once kindly permitted me to be a victim experimental subject for a very interesting piece of work that made use of midrange SensABLE Phantom devices, which you can see here. Be advised in advance that if you have to ask the price of a SensABLE device, you probably can’t afford it.

One of the problems with haptics is that it’s simply pretty hard to explain. The Phantom experiment, for example, was very cool; the brief was to ‘feel’ your way around a three-dimensional workspace, and try to describe the object you can feel. Umm… it’s sort of boxy. There’s a sort of doodad here. Um, there’s a gap in the middle. What is it? Oh. Wait. There’s another doodad below the first one. What on earth is it? And in the end it would turn out to be a model of a desk, at which point you, the lab rat experimental subject, would say, “Oh, right.”

So on the one hand, people aren’t very good at identifying objects by touch. (For a more complete discussion of our confused mumblings, see Pearson & Fraser, 2008. Read it. It’s interesting…) On the other hand, as confusing as the information may be to use, the experience of fumble-fingering your way around a 3-D model of a piece of office furniture is extremely good fun.

Of course, that meant that someone was going to build this stuff into a game, and yeah, it’s been done. From the invention of haptic battle pong, which on the face of it must be one of the most amusing things you could possibly do with the most reasonably priced SensABLE device (recently on sale at 800 euros), things have moved on. But the one that caught our attention was the Novint Falcon, which first shipped in 2007 and, at $180 plus inevitable overhead in customs charges and the like, is only a fairly expensive method of playing Pong in the workplace.

So we bought one. It looks a lot bigger in real life. And after we got it installed, and got over playing the games that came with the device – particularly one in which the player is invited to launch ducks into a series of ponds using a large catapult – we settled down to see what else we could do with it and the available frameworks, such as Chai3D.

Here are Andy Hewson’s first impressions of the Falcon and the Chai3D demos:

Pearson, W. and Fraser, M., Collaborative Identification of Haptic-Only Objects, in Proc. EuroHaptics 2008, Madrid, Spain, June 2008, pp. 806-819.

Accessing local-network-only web pages from outside the firewall

VPNs aren’t as painless as they ought to be, and setting one up purely in order to get at web pages that have been hidden behind a firewall can seem to be overkill sometimes. But then, there are good reasons for hiding things like internal finance-and-admin web pages behind a firewall. What to do?

OpenSSH to the rescue! Greg Tourte just pointed out an alternative to using the VPN in order to access these internal web pages, such as Agresso. It certainly works on Linux and on the Mac, and should also work using Putty (see http://home.fnal.gov/~dwd/ssh-to-browse-behind-firewall.html). This is pretty useful. For example, people within UKOLN who might be having difficulty accessing internal web pages such as Agresso due to VPN problems should be able to use this method instead.

It relies on the fact that OpenSSH has a lot of little-known functionality, in this case, the ability to act as a SOCKS proxy (see http://en.wikipedia.org/wiki/SOCKS for lengthy and boring introduction). In short, OpenSSH can tunnel through to a machine at UKOLN and then allow the browser to treat that connection as a standard web proxy. Because the web proxy endpoint is inside the Bath network, it permits access to internal web pages.

Here is a blog post describing the basics of this openssh functionality:
http://alien.slackbook.org/blog/securely-browsing-the-net-using-socks/

Here are the steps required to set up a SOCKS proxy in order to access these internal web pages remotely (we just tested this on a Mac and on Linux).

1. Install Foxyproxy on Firefox : https://addons.mozilla.org/en-US/firefox/addon/2464

2. Open a terminal window and type: ssh -D 8888 yourusername@InternalServer.YourUniversity.ac.uk
Type in your password when prompted to do so. You will then get a ssh session on InternalServer; just leave this open.

3. Open FoxyProxy, and complete the following steps:

a) add a new manually configured proxy, with the host/IP ‘localhost’, port 8888, click ‘SOCKS proxy?’ and set it to SOCKS v5.

b) Add a new pattern defining when this proxy should be used:
Given the example of setting this up for Bath’s Agresso server:
Call the pattern something like ‘Agresso’, and put in the URL: *agresso.bath.ac.uk/*
Under ‘URL Inclusion/Exclusion’, select ‘Whitelist’, and under ‘Pattern Contains’, select ‘Wildcards’
Make sure that the newly set up proxy is enabled.

 

4. Type http://agresso.bath.ac.uk/ into the address bar. Hopefully, FoxyProxy should make use of the pattern that we have just set up and send the traffic through via the SOCKS proxy.

Caveats: Obviously, just as you need to turn on the VPN before you can access Agresso via the VPN, you will also need to run the SSH step before you can access Agresso via SSH – the SOCKS proxy only lasts for as long as the SSH session remains connected. That said, you can simplify the setup process by adding it to your ~/.ssh/config file, for example:

Host agresso
HostName InternalServer.YourUniversity.ac.uk
DynamicForward 8888
User MyUsername

If I then type ‘ssh agresso’, and type in my password, that does the trick.

This simply goes one step closer to proving that no matter what the problem, if it involves a network, SSH has an answer.