Imagine a cable with a handle you can pull. On the cable is a tension-measuring device, perhaps a very simple version of this: I imagine the core of this thing is just a load cell with strain gauges, like you find in a bathroom scale.
At the opposite end of the cable is a winch. The winch is connected to the motor by a worm drive, so no matter how hard you pull, the cable is not going to budge unless the motor feeds more cable out.
The DC motor is controlled by an Arduino via a solid-state relay. The arduino takes the tension reading on the cable, and simulates a virtual mass. This is going to become a lot for an Arduino to handle, so we'll do the processing on a laptop and simply control the Arduino with Firmata.
You give the program mass, static friction, and kinetic friction parameters.
Start pulling on the handle with increasing force. Assume the static friction force is greater or equal to the kinetic friction force. Once you apply enough force to overcome static friction, the cable is paid out at a velocity that's dependent on the tension and the virtual mass which you fed into the program. And if you stop, the
Ok so this is a sort of boring idea so far. You can pull a virtual mass until you run out of cable or until you back up into a wall. But: what if you also had a second cable, winch, motor, and tension sensor system behind you, connected to that same handle? Now you can move the virtual block around in both directions, back and forth, a virtual Sisyphus. :p We'd also need the cable to retract when it's slack.
Still bored? What if you had 4 cables, all opposed in the shape of a methane molecule: All 4 cables are connected to the one handle. In this configuration, any force you apply in 3 dimensions can be restrained or allowed by the cables. With some more programming, you could add gravity and then move around a virtual mass in 3 dimensions. You can lift virtual weights, manipulate 3d objects.
Ok, double that, add more physics. You can have 2 of these methane shapes, one for each hand. Now you have blobby Bomberman-like hands, no fingers, but you can manipulate virtual objects with your blobby hands in 3d space with force feedback.
Do you know any projects that have done something like this? There's gotta be something like this on the internet, right? Would it work in the 1-motor case? What about in the extrapolated 8-motor case?
What are the limits to this system?
Arduino processing power doesn't matter, we can use Firmata and do the processing on a computer. Arduino throughput does matter, because it still has to relay the sensor and actuator signals.