I'm an arduino noob, and this is my first project using an arduino. I'm using it to read inertial data and control a hydraulic valve, which is used to steer a combine. The machine is a Case IH 2588, which is 285 HP, and weighs about 30,000 lbs. I have a Windows 7 computer in the cab to process the GPS data and calculate steering angles, and the arduino is my IO card. I eventually plan to offload all of the steering calculations to the arduino.

The system uses GPS data, an inclinometer (measures tilt), and a yaw sensor. We want the machine to travel back and fourth across a field in parallel passes. The computer will keep the machine driving straight, within about 3 inches of the desired path. The distance from the path is called cross track error, and I'm seeing an average cross track error of under 1.5 inches.

To get the cross track error down to this level took some time. Part of it has to do with having a proportional hydraulic valve to get smooth slow steering when needed, and fast response when needed. Part of it has to do with how to get accurate heading data - couple the yaw sensor to the GPS data with a Kalman filter. A steering angle sensor helps, and the steering algorithms were critical to being able to keep the machine smooth. While a 2 inch average cross track error is sweet, my goal is to get that down to the 1/2 inch range.

There are several failsafes built in. The system will not engage or operate at speeds above 6 MPH, the system disengages if the steering wheel is moved, the arduino will close the valve if it doesn't receive any data from the computer for 200ms, and worst case, there is a power switch in the cab to kill the circuit that drives the solenoids on the hydraulic valve.

At the speeds we normally travel at, nothing serious will happen if the system freaks out. At 5 MPH you can stop, shut the system off, back up, and keep going. The critical part is when we're on the road at 20 MPH. While that isn't fast in a car, these machines with rear steering aren't very stable at 20 MPH. When on the road, we flip the lockout switch in the cab so the valve can't possibly open.

There are two computers in the cab. One is designed specifically for monitoring the machine and recording data about what it does. The other is a Windows computer for the autosteer system. The motherboard is an Intel D945GCLF2 which has a dual core 1.6 GHz atom processor and 2GB of RAM.

It is a 10.4" touchscreen. Just a cheap one from gooddeals18.com which I found via a thread on the MP3Car.com forum. The screen was $212, and it seems to work fine. Unfortunately, it doesn't have a standard 100mm mounting bracket on the back, so I had to make a bracket to hold it.

What kind of accuracy are you seeing? Im considering doing something like this for my parents, but I need some pretty extreme accuracy (accurate to 2" at the VERY WORST, preferably 1"). John Deere sells a system that can do this, using DGPS and a portable base station, but the setup is around $40,000. Have you looked into using DGPS at all?

Project has been untouched since we finished harvesting soybeans. Performance was down to an average cross track error of about 2 inches. I was running a 7 inch overlap between passes without missing anything.

In terms of accuracy, there are two variables. GPS position accuracy and vehicle control accuracy. The GPS accuracy part can be resolved by using a RTK system, which will get you to approximately 1 inch position data. The vehicle control part is my problem. 4 MPH may sound slow, but a lot of things have to happen in order to keep that machine within an inch of some imaginary line, especially when you're on rough ground.

I've used DGPS when using the WAAS correction signal, but it can drift a few feet in an hour. RTK is much more stable.

We've got a JD 9550 that we use for corn, beans, and wheat, so I know alllllllllllllll about driving slow I was looking at using some sort of DGPS system to auto-steer a plastic-laying tractor in a straight line; thats all it needs to do. Im not interested in it turning around or doing much, it would just involve the operator lowering the implement, enabling the system, and putting it in gear, and having the auto-steer system keep it in a straight line.