A fish that can steer its tank around the room
youtube.com
youtube.com
So I'm a little conflicted here. Love the tech; concerned about the ethics.
The current design doesn't seem to let the fish just swim around without moving the car. There should be a slightly bigger area for the fish to swim and only make the car move when the fish is in a small area of the tank in the front or back.
It would be interesting to have the track go into different areas/rooms with different colors or lighting to see if the fish spends more time in certain areas. That might shed some light on whether the fish is aware that it can control where the train/car goes.
For example. set the cart to move very very slowly, so that basically the fish staying on the edge would move maybe 1 or 2 feet per minute. Second, use roller wheels so that the orientation of the tank stays the same regardless of direction, and only its position changes. Finally put different "scenes" around the room and see if the fish gets the tank to move over to the scene or not.
Then I would be LED lamps at different parts of the room, when one was the target color if the fish moved the tank to it, it would drop food in the water and the light would turn off. Then another of the lamps would turn the target color. Could you train the fish to move the tank to the correct light color?
I don't know how much a fish navigates the space based on vision alone (and I don't think it plays a big role, since visibility underwater is limited), but I know some from the Cichlidae family like the Oscar are able to recognize it's owner, which is quite a feat.
Instead, prevent having waves in the first place. Just like a person can move a glass without generating (large) waves in the liquid. What you want to do is to avoid using the position of the fish directly as input to the motor voltage. Instead, use it as an input to the control circuitry.
Then calculate the force generated on the fish : voltage is linearly related to speed. And the differential of voltage gives you the force on the boat/fish. So let the fish move and this sets a "target", then every timeframe you bring the voltage, say, 0.01V closer to what the fish "wants" to set it to, limiting the force exerted on the bowl.
Btw: there will be a "resonant" value that will be relatively low in value, but will build massive waves. Avoid at all costs. In a project like this I might just assume I'm very unlikely to configure just the resonant value, but in a real project I'd make DAMN sure I knew what the resonant value(s) is/are and put in a warning.
You probably think that this will restrict the movement a lot but it won't. Find the right values and you will hardly see any waves at all.
I read somewhere that Survival Research Labs did something similar with a giant legged robot and a hamster, with the added feature of a flame thrower that went off whenever the hamster would squeak.
A few years ago I saw a cockroach on a trackball that controlled a similar vehicle. You could chase around by visual stimuli so in turn you would control the cockroach. It was a bit perverse but very interesting at the same time.
http://www.ohgizmo.com/2012/06/05/the-web-is-full-of-wtf-tax...
Something like the LCL of Evangelion.