Servers by jDrones

Agricultural Rover project

(Domenico Loizzo) #21

If I well understood, with Mission planer, you have per each line just two waypoints, one is the starting point and the other the arrival… What happen if in the middle of the Path, the rover turn right due to gps signal loss and goes fair from the path line? When the signal come back, the rover will correct the heading pointing to the arrival point, but the new headings will be not parallel to the previous path, right?
Cerea corrects the headings so the Rover is driven not to the ending point but to the closest one on the previous path after few foots the rover is again on the right parallel.

(cala2) #22

If you are following a survey I understand that does as cerea, return to the path line, figure if you are mapping and not follow the path, the map is impossible to do.
Im curious why you prefer rover than Cerea, I didn,t follow Cerea with autosteer anymore.

(Kenny Trussell) #23

Domenico, Ardurover DOES navigate by trying to keep the rover on the line between the previous and next waypoints. It does not simply aim toward the next waypoint. There is the concept of Cross Track error. There is a parameter NAVL1_XTRACK_I that is the gain that is applied to the cross track error to ensure it converges to 0. Smaller values converge slower. Larger values converge faster but can cause oscillation. has a section entitled “L1 Controller Background and Description”. Within that section there is a link to this page which has a description of the algorithm including some diagrams.

I am not familiar with Cerea, but it may be better suited for what we want to do. AgOpenGPS ( is also a possibility. BUT, I think that the method of navigation to follow the line to the next waypoint is the same. That is my understanding, anyway. I think I can find a screenshot of my machine navigation in Mission Planner that will demonstrate this.

(Kenny Trussell) #24

Here is a screen shot of a path I was following while tuning my steering, throttle and navigation. Notice how I did not have the turns working well, BUT that after each turn, the rover moved back to the line, NOT directly to the next waypoint.

I should be able to work with the parameters, especially the NAVL1_XTRACK_I to cause it to converge quicker onto the line.

(Domenico Loizzo) #25

Ok kenny, you are right, having a look to your picture, it’s clear that the rover try to stay on the line in any point of the path. I’ll have a look to the algoritm, thanks for the link, I would never have found it by myself!.

Cerea is from my point of view the best autosteering porogram, it’s even better than AgOpenGPS, since as opposed to Cerea, this needs an heading sensor to drive the tractor on the line. Cerea has a very powerfull and effective algoritm that drive the tractor on the line with only the GPS data.

The only problem is that for my goals it should be modified, it’s not thinked for aoutonomous vehicle and you cannot “plan” a mission or having the rover going back to home when necessary.
Since Cerea is not an opensource program, it’s proprietary one, nothing can be done.
I’m quite disappoined of it since it was developed also with the help of a community :frowning:!

(cala2) #26

Yes, at begining was open, every one test and discuss but them become close and paid. Thanks for your experienced opinion.
I hope its only uses gps by what you comment about isnt designed for completly autonomous vehicle were you need more sensors.

(Kenny Trussell) #27

I do not really know the code of Ardurover, and so, the github program linked above may not be what is running in Ardurover, but the link did come from Ardupilot docs. And my experience has been that the rover does try to get back to the line.

I will add that tuning is very hard. You have to tune: speed, steering, pivot turns, and overall navigation systems. There are interdependencies. The control loops are not simple PID loops. Some of them have a feed forward term. There are additional terms, etc.

I may be wrong but I think that the control system could be simplified for a Rover. The complexity may be necessary for a flying vehicle. BUT, keeping as much of the code as common as possible between the different versions is an overarching goal, I am sure. So, no complaints from me! Hats off to all those who have built this great system!

(Nathan E) #28

Lowering your L1 period might also get you back on the line faster.

(Kenny Trussell) #29

I also found this wiki page by @rmackay9 that is an overview of the L1 navigation:

(rmackay9) #30

As a side note, Leonard has a design for a new navigation controller for Rover. I think it will be better in many ways but in particular it will calculate both the desired speed and turn rate (the current L1 controller only calculates the turn rate). It will also build up a path so that corners are handled better. We are just getting started so it will probably be a couple of months before it’s ready for beta testing. We will push out Rover-3.5 without this new navigation controller.

(Kenny Trussell) #31

Sign me up as Beta #1! Really looking forward to it.

(Domenico Loizzo) #32

An interesting paper on RTK positioning and a robust navigation method: