Rolling motion activating motor to propel wheel

I'm working on a project with one of my former high school teachers in which I need to make a large, hollow foam and metal elephant move. It's designed to have a person in the front with their legs operating the front two, with the rear two rolling behind on casters. Due to the thing's weight, we've already determined that the casters are getting replaced with powered wheels, out of a Razor Crazy Cart. The problem is activation. It needs to be just enough to move the massive thing but only when the person up front takes a step forward.

I was thinking about this, so please tell me if I'm completely off base. Would it be possible to rig up an Arduino to sense the small voltage generated by the DC motor when the wheel is pulled forward by the operater and have it then kick power to the motor via the controller to move everything forward? My main concern is the rear legs (wheels) continuing to push once the operator up front has stopped.

All feedback welcome!

Ultrasonic sensor paired with an accelerometer?

You may be able to sense it being pulled forward, and start moving, but how are you going to sense that it has to stop moving, and how does it know how far to move?

Is the person actually lifting the front leg when moving? If not you could add a wheel in there, then measure the amount of movement of that wheel (use an encoder), and move the rear leg accordingly. If the front legs are actually lifted as in natural movement, you need a different way of detecting movement. Just detecting the leg being lifted is not enough as that doesn't mean it's actually moving forward.

Another thing you have to worry about is how to make them the same amount of movement. If the person moves the leg forward by say half a meter, the rear wheel should also do half a meter, not 49 cm, or 50 steps later it'd be a full step behind. It's impossible to keep the two in sync by dead reckoning - no matter how well you try there will always be slip or other inaccuracies - so you have to find a way of keeping track of the relative positions of the two, and have your motor compensate for this.

So somehow you're going to have to keep the legs in sync. How - that's a big problem, even if just going straight. They're too close together to use ultrasound, you'll always measure the distance to the leg that's closest to you. If you try to make a turn, it's getting a lot harder for the hind leg to follow the front leg.

Flex sensor actuated by front leg?

Flex sensors may do quite well to detect the movement, but you'll still have to analyse the stance of both legs to determine whether the operator is just lifting that leg up, or actually tries to move forward, and by how much.

Flex sensors in the hind legs may help keeping the whole thing balanced - where the balance point is usually an angle, not straight, as it depends on the position of all other legs.

Easiest solution would be to add a second person to operate the hind legs.

If you had a way to measure the distance between the two legs. Perhaps some rig at the top that can measure the angles and calculate. If you know the positions of the legs you should be able to have some sort of reverse - inverse-backwards-kinematics engine that could make it walk. I doubt it would run on an Arduino but I've been surprised before. I'd use a Pi just so I could use Python instead of C++ for the code. But I'm lazy like that.

No experience with this stuff so just throwing things out. What about a hand operated switch/joystick to control rear motor speed/on-off? No fancy algorithms, just the operator's senses guiding him to control the motors. Might be a learning curve! If left/right info is included turns could be made easier, too.

Good idea. Would also make it quite easy to have a leg move backwards as well.