RC cow (as in mooooo); advice on initial design

I am designing a RC car to imitate a cow in order to train horses for an event called cutting. Basically a single cow runs left and right and the horse mirrors what the cow does.

https://youtu.be/nCRzUjn4I7I

What I have so far is a typical hobby-grade RC (Axial Wraith) that uses a 2.4GHz pistol-grip transmitter and receiver. The receiver directly controls the steering servo. The receiver also controls the electronic speed control which in turn controls the brushless DC motor.

The first stage of the project has been getting the chassis and motor fine tuned so that the RC is physically capable of what I need it to do. For the most part I drive the car forward at varying speeds, stop, reverse at varying speeds, stop. Repeat. Sometimes I drive it on an arc rather than a straight line. All of this is done in pretty uneven sand. Stage one is more or less complete.

Stage two is to come up with a less obtrusive transmitter. At the moment I ride the horse with the reins in one hand and I run the transmitter with the other. I would like to be able to ride with one rein in each hand. I'm thinking that I could use a small joystick transmitter (like a Wii nunchuck) in one hand and control a rein with that same hand. Googling that idea is what introduced me to Arduino and it seems like there are a variety of ways that this can be done.

Stage 3 (if I get that far) would be to have proximity or range finder sensors on the RC to make it autonomous and "react" to the relative position of the horse. On a live cow, the closer the horse gets to the cow the faster the cow moves. If the horse is to the right of centre of the cow, the cow goes left and vice versa. Again from what I can see this seems very doable.

So I think I need to have an Arduino interpret the output from the nunchuck and send the output to an xbee and those components will be with me on the horse. Another Arduino/xbee on the RC will receive that data and also interpret data from onboard range finder sensors. The onboard Arduino will then directly control the steering servo and control the motor through a motor control shield or the existing electronic speed control.

Is this possible? Are there any pitfalls I should be aware of or any shortcuts I don't know about?

Another feature that would be great is if the RC could hold its course even when it gets bounced around in the sand. Maybe using an accelorometer to measure how far it bounced and countersteering that much?

I appreciate any and all help!

For stage 3, look up 'obstacle avoidance'. The only difference between the usual stationary obstacle and a horse is that the horse is also moving, but the same principles apply.

BTW, I hope you don't expect to get milk from it. :) :)

Is this possible? Are there any pitfalls I should be aware of or any shortcuts I don't know about?

Sounds like a complex project. You probably need to break it into its various parts and work on each one separately until you get them to work, then put them together.

Thanks for the advice.

After using the RC a bunch today I think I've changed the order of my wish list. After I get the nunchuck working, my next priority is to get the RC to keep itself going in a straight line even if it gets jostled in the sand. Can I use a magnetometer/compass to accomplish this? Will this work at ~15mph?

Is there a way to get it to hold an arc instead of a straight line? I think if I try to use the compass I need to also keep track of how far or fast the RC is travelling so it knows how much to adjust its heading. I'm not sure if there is a reliable way to do that? It doesn't sound like GPS is precise enough?

Once you retrain the cutting horse to chase an R/C car, and, I guess, to cut said R/C car out from 'the herd', who's gonna rope it, drop it, and hog-tie it? I didn't know that was a rodeo event, or is this for 'practical range use'?

Seriously, good learning opportunity, good project.

You don't need precise points, just hold the steering to an angle for a time, until a new vector is reached and then recalculate, you'll get an arc

A gyro/accelerator module could be more helpful for local navigation.

I'd suggest beacons or other landmarks for navigation. For a straight line the angles between the cow and both line endings can be used for steering. For arcs the angle between heading and a target (arc center...) can be used.

123Splat: I've tried roping it...doesn't work :) . I'm using it to start young horses on working a cow. I work live cows as well but it's nice to have something that a) doesn't get tired or used up like a cow and b) I can manipulate to set up any situation I want. The horses seem to hook on to the RC just as easy as a cow and what they learn on one more or less seems to transfer to the other.

There is another machine that is commonly used but it has really limited functionality: http://pro-cutter.com/

123Splat/DrDiettrich: The beacon/landmark idea is interesting. Is there a way to set up an area of say 100' x 200' and be able to map where the RC is within that grid? And also where the horse is? That would be really valuable.

I just got my Arduino starter kit in the mail so the learning has begun!

Thanks for everyone's help.

Position tracking is gonna be a little beyond the capabilities of an arduino (imho). You might be able to set up a network of arduinos to detect a presence in article in an array of zones and have the detection sent to a central arduino to report approximate location, but that’s gonna get expensive quick!

OK, scrap that. How would an accelorometer/gyro work?

What about going back to the digital compass. I think it would be no big deal to hold a straight line.

To keep it on an arc seems trickier. I think if you held the servo constant until the correct heading was reached would work in some situations. What if I wanted the arc to be really consistent, e.g., so that it made a full circle and then another circle in more or less the same tracks. What if I tried to hold the rate of change of the heading constant. I guess it would be equivalent to saying move one degree to the right every second. Then the "move one degree" part could actually change based on the throttle position so that the arc was more or less constant as the speed changed.

Hmm. That may end up working pretty much the same as holding the servo constant.