@BrianTee_Admin You are talking about making PID calculation on the desired steer angle to output to the arduino? Or also calculating the PWM value in AOG?
Since the well angle sensor is on the arduino I think the best way to improve the whole system is to let the arduino only handle the “steer angle error”, be receiving the AOG desired angle and always try to reach it.
This part works pretty good I think, don’t know if this need PID since the feedback from the angleSensor is real quick(at least with hydraulic valve)
And yes there is a lot more information for calculating the optimal steer angle in AOG than trying to compensate somehow in the arduino.
And I believe it’s a lot easier to work on AOG with VisualStudio than the .ino with Arduino.
Or is there a better program than Arduino(1.8.13) for .ino?
I love being able to find all the references, seeing the errors in real time,etc in VisualStudio.
So if I have not misunderstood, the integral is not the integral of the PID, it is something that acts first, and modifies the target angle even before calcSteeringPID, correct?
I think its easy to get confused with the two different PID situations, the one on the arduino and the one on AOG?
The PID on the arduino, so the settings you set gain for in autosteer settings which are sent to arduino, are for the PID loop that runs on the arduino, but all that does it take the desired steering angle form AOG, and output to the wheel motor / steering valve to achieve it, using the wheel angle sensor for feedback… Is has nothing to do with calculating this desired steering angle…It just listens to what AOG says that it wants the wheels doing, and does its best to make the actual steer angle the same as the desired, which form my experience, is never a problem, on my setup anyway, it always instantly meets target in any conditions.
The general problem with sidehill / draft tracking error, is that the control in AOG itself, isnt asking for enough angle to meet the line, this is where the integral is needed to allow the AOG output to keep rising / falling until the off line error is met, rather than just giving up and sitting off the line, if AOG never requests enough wheel angle in the first place, you can do anything you like with the arduino PID setup, and it will never steer enough as its not being told to in the first place…
So theoretically by implementing a complete PID to control the engine / valves, like the one for the danfoss, the integral that is in Drive would remain a thing in itself and independent
I fully agree with you @darrenjlobb, but I am unsure if we need integral. Shouldn’t roll do the trick? Can’t test now due to the weather, but I noticed last spring that roll (by tilting PCB with roll sensor) made the tractor steer 10 to 20 cm to the side, but then slowly came back to the same line as before (still with PCB tilted /in same position). So the roll wears off, probably due to the filtering? Can anyone confirm this behavior?
I had some strange behaviour last spring while driving on flat land and then going down with roll also (maybe 5-8 deg).
Going on the line on the flat land and in the hills it was (just sometimes!) 10 or even 20 cm to high.
I had the feeling it was worse some days than others.
Ntrinp rtk, mma , bno055.
Could never find out why but this could be a thing to look at:
This behaviour whould make the tractor divring on the high side? Right? or the botton side? I can’t figure out.
I was playing a lot with the settings, I thought that it follow the line better with less BNO data, with only fix-to-fix heading, or 10% bno - 90% fix-to-fix. But that maybe just was a feeling
It seems to me that the roll works quite well if the tilt is slow, e.g. if the tractor goes into a furrow or a rut with one side and is tilted for a long time, it is ok. The problem is uneven when it is abruptly tilted, e.g. the tractor will hit a stone, then the antenna position will not be enough correct and disturb the wheels.
Integral / some form of better correction is 100% required, without it, any kind of load on the back of the tractor causing it to drift even a tiny bit, never mind with something like a side mounted mower, will cause it to drive considerably off track (30cm+)…even on level ground…I am yet to test drive with integral support, but apparently it has helped alot…
So adjusting proportional with the value of difference between actual movement of tractor and the tractors real heading, should work. Dual GPS ought to be able to deliver those values. Perhaps a very good magnetometeer could give useable true heading as well.
Welcome back Brian! Looking forward to the next updates (or maybe simplifications) to the system.
AgOpen has been a great tool for me over the last 2 years. I’ve used it to do the steering for all of my planting work, including turning at the headlands. AgOpen has made it possible for a small-time farmer to access a really usable guidance system. Agree with the idea of keeping things (relatively) simple and making it work well.
Glad to see you back, I was getting worried that you had been snatched up by one of the Big guidance companies and put under a gag order
it depends, usually between 3 and 8 km/h; however in some cases, with tight tools 1 meter is too far away and forces you to take an extra pass on the headland, while 0 is too little and you go into the ditch, so if you could maybe set it at 0.50-0.70 it would be better in my opinion and for the use I make of it
That setting is only for calculating the heading. It uses all the positions for things like section control, steering etc. How do you mean you need to take another pass?
this is exactly my experience. When seeding on plowed land the plowed land shakes the tractor a little constantly like the stone you mentioned. This makes the steering wheel move due to fast roll changes, and the the seeder couses draft and because of that the tractor drives off line. I will test the Drive version with integral, hope this helps!