I feed a PID with my crosstrack distance and get an attack angle out of it. That largely handles the speed sensitivity for the limited range I’m using.
I have been thinking about a “bump sensor,” also. A friend recently told me a story of why Kinze’s automatic grain cart hasn’t been public lately. He said it ran into a new semi tractor and kept spinning its wheels until it was shut off. I almost always have an eye on my tractor and I carry an independent long-range remote kill switch.
Vision guidance isn’t nearly so interesting to me. But I have been thinking a lot about using microwaves (radar) for detection of trailers and the height of grain mounds. I’m becoming confident that the tractor is going to surpass my abilities soon.
Project update…here’s Tractobot02 pulling a grain cart last weekend.
It is simply under remote control - no navigation code was enabled. I’ve been trying to work out my control code and I’ve had a couple glitches in it that made me anxious about allowing automated operation so close to the combine. I think I’ve worked through those problems and am ready to spin up the nav code.
Here’s the Arduino code I’m developing.
This allows me to set the throttle, transmission, and steering through rosserial after the enable switch (in the cab) has been triggered. If the steering wheel is turned, all control returns to the local operator until the enable switch is activated again.