Agricultural Rover project

Hello everybody,

I’m really new to this community and I’m quite sure I’m using the wrong place to discuss about my project. I apologyze for that but I’m still a bit confused about the ardupilot site structure.

I do not have any kind of ardupilot hw but reading your contents, I feel this is the right way for me.
I’m an engineer and also the owner of a little farm for the production of cereals and wheat. I’m also interested to technology and my biggest dream is to merge both, my tech interesting and my farming work.
That’s the reason why I would discuss w/ you about my project in order to evaluate feasibility and next steps.
Please address me to the right blog if this is the wrong one.

thanks a lot for your time.


Hello Domenico. Welcome to the Ardupilot world! I have similar goals as you and have been experimenting over the last few months with the Ardurover version of Ardupilot. I work full time as an engineer but also have a small farm where I grow hay to sell to farmers with cows and horses. I hope to build an autonomous spraying machine to spray weed killer and to perform some of the haying duties (cutting, teddering, raking). (Hey, I can dream, can’t I!)

I have automated a zero-turn mower and am successfully cutting my non-hay fields with it. I am still perfecting several aspects of it and have everything sort of temporarily installed, but working.

I am using a Pixhawk controller and a U-blox C94-M8P RTK GPS system. I have been through several changes to the RTK communication link between the base and rover. Many other items are still evolving as well. I recorded a lot of YouTube videos documenting and demonstrating what I have done, BUT I badly need to record an update. I recorded a two-part overview which gives a lot of information, but it is not up-to-date. I think if you watch them, however, you will get an idea, at least, of what I am doing. The description under the 1st video also gives a full breakdown of my parts AT THAT TIME. Again, a good bit has changed.

I created a playlist of some of my videos here I do not claim to be an expert but I am happy to share what I have done with you and would enjoy hearing what you accomplish as well!

You will find that Ardupilot will probably not do everything you want, but it has a very rich communication protocol called MAVLink, through we should be able to have a co-processor do other functions in concert with Ardupilot.

It’s a whole lot of fun to watch this stuff work!!

I will point you to one other non-Ardupilot software that you may want to look into: AgOpenGPS ( I have looked at that some, but if I understand correctly, it believe the main software runs on a Windows laptop and uses Arduino and other hardware for control. I prefer to keep embedded systems such as an autopilot and other controls on a more normal embedded platform. But, I’m not ruling it out yet. The author, Brian Tischler, has some excellent videos and has developed some very sophisticated software:

That’s enough of my rambling for now! You will find this forum very helpful, or at least I have. There are some very patient and helpful experts on here!


Hi kenny!
Thanks a lot for reply!

I’m very glad to hear that somebody is making my Dreams reality.

Unfortunatly, evenif I’m anche engineer top, I’m not programming skilled, my skills Can help in mechanical issues. By the way, I saw some of your videos and it’s awesome how your Rover works.
Can you explain how do you tell the Rover which are the boundaries of your field? And how are the headings determined? Are there automatically determined based on the working tool width?

I am happy to share anything I have done. I am pretty experienced in programming and can help on that part. I am a little more challenged on the mechanical side; my degree is in Electrical Engineering back from the late 70’s and early 80’s. I specialized in microprocessor-based design - no such thing as “computer engineering” back then at Georgia Tech. :slight_smile: But, that is basically what I do/have done.

The way I tell my rover where to go is with waypoints set up in Mission Planner. It has a survey feature that will let you define an area to survey and it will build waypoints to go back and forth. However, for my mower application, I want to go “round and round” from outside to inside. I wrote a small program that will create that pattern. I put it on Github for anyone to download. I have a couple of videos showing how it works here:

In my program as well as the Mission Planner survey, you specify how far between the tracks, so, yes, you would use your tool width as the value for that.

I also have a program that will shift all the waypoints in a certain direction by a certain amount but I have not created a demo video for it yet.


Nice work Kenny :slight_smile: thanks fror share.

1 Like

Hi kenny,

The path definition through Mission planner Is now clear to me (thanks for your video).
I have Just a coupple of questions:
When you have to follow the First contour, you Need to go strictly closed to the field boundaries (think about a boundary Wall), so, you need a very precise map. which is the origin of your map? Is it enough to download It from Google Maps?
How do you avoid an obstacle like a Building in the middle of your poligon ? Is there a different strategy from drawing different poligons around the Building?

Finally, if we go width spraying, there Is no way to know which areas have been already sprayed. It’s necessary that while the Rover run, a trace will appear on the already sprayed area… What do you think?

The Rover I have in my mind will be a tracked Rover driven by two Electric motors Powered with a small petrol Electric generator. It should transport a water reserve tank, a separate pesticides Tank and a mixing space. The mixed liquid will be pumped to the distributing pipes on the back of the Rover, where 6m folding arms will host the sprayers.
Every sprayer should be mounted on automated support in order to keep the desired working hight.

This is basically my idea for my first prototype.
Sorry for the long mail and for my horrible English.

Your English is very good! I am very excited about YOUR project because it is basically exactly MINE, too!

My ideas are very similar to yours, although, I have several different ideas of how the rover could be designed. Electric motors is certainly one. Another I have in mind is hydraulic motors the same as what is used on a zero-turn mower. You can get very strong ones of those. For example, Parker ( has a big selection. I do not know how to size it properly at the moment. Parker makes the ones used on the larger Bad Boy lawn mowers which I use.

I have to run to a Christmas Eve service at my church but I will address your other questions about obstacles and boundaries later this evening, hopefully.

The way I setup my GPS system to try to be as close to Google Earth as possible is that I setup my RTK base GPS at a point that I could also identify on Google Earth. Then I got the latitude and longitude of that point from Google Earth and I keyed that into the base GPS location. So, whether it is actually an accurate latitude and longitude or not, it matches Google Earth. I have found that this does give me pretty accurate locations relative to the maps in Mission Planner.

Another way to determine the outer boundary accurately is to drive the rover around the boundary and at key points, have Ardupilot store a waypoint. You can define a control on your remote control that when turned on will cause Ardupilot to store a waypoint. This makes it very easy to move the rover around in manual mode and store waypoints at key locations.

As far as avoiding a large obstacle like a building, at the moment, I would just work around it with polygons. You can create multiple “plans” in Mission Planner and append them to each other to have a single plan that will cover it all, as long as you have enough memory in your auto pilot module. I would really like to get my hands on the program shown here, but the author has not responded to comments (including mine) in the last several months.

To avoid small objects such as a tree in the path, Ardupilot has object avoidance built-in. You have to install a sensor such as an ultrasonic distance sensor or LIDAR. I hope to experiment with this sometime for my lawn mower. But for a vehicle that is 6 meters wide or more, I am not sure the sensors will pick up the objects and if they do, I wonder if Ardupilot can steer around them with the wide booms on the vehicle. I just haven’t gotten to that yet.

A co-processor that communicates with Ardupilot will be necessary I think to accomplish much of what we need to do.

I have not planned to mark what has been sprayed. My plan is to have the rover keep track of where it gives out of chemical and return to that spot after refilling and continue the mission. Ultimately, I would like it to return to the filling station and refill automatically and continue. I am pretty confident this can all be done with enough work. Unfortunately, I have a lot of projects going on that keep me from this one.

I hope this all makes sense and helps. A lot of it is just ideas at the moment.

1 Like

Kenny, adrenalin sounds good but thoughts are becaming too messy in my mind.

The only way to eat a huge elephant is doing it one slice at a time, so, let go step by step and let speak a bit of GPS.

GoogleMap is known to have several meters of positioning error and this doesn’t match with our RTK systems that reach easily 5 cm precision.

In my opinion, if we want to have a reliable area definition (considering that a boom of 6 meters or more needs to be driven with high accuracy when boundering) the only way i sto refer to the same positioning system. A manual run of rover along the border should be the best solution because you are using the same positioning system but a wide boom can make it a bit problematic (at several meter of distance is difficult to offset the bondary wall, beleave me, I tried with my autosteering tractor….) so, we should think to a different solution.

My idea? It’s a bit strange, probbly you will think I’m crazy but I feel we are on the same wave lenght so I’ll tell you.

What do you think if the rover has a landing platform hosting a copter or a plane equipped w/ RTK and GoPro?

Once in the field, the copter can make a quick flight (a mission based on GoogleMap map) and record fields data such as boundaries, ostacles and most important, RTK GPS data to be used for the rover mission.

Am I crazy?

I’m nota n expert of georeferencing but I think it should be possible to correct a GoogleMap map with the RTK determined coordinates… isn’t it?

I am using my own base GPS for RTK (not a public one), so I can control the latitude and longitude that is programmed into the base. So I offset that by however much is required to make it line up with Google Maps. There may be a flaw in my logic, but so far, it has seemed to work well, allowing me to program missions with the Google Maps background that translate into the correct locations in real life. I have not done a scientific test to see how accurate this method is, however, but until I have a problem, I will continue to do that. But, the most accurate method for defining the perimeter is to take the Rover to each key point and store that as a waypoint.

I think the copter idea is very cool, but I expect it will take a lot of time programming and experimenting to be successful. I will keep with what I have until it proves not to work.

I am fortunate in that my fields do not have obstacles, so I don’t really have to figure out what to do about obstacles. It would be a nice feature to have, however.

If I am not explaining well, please keep asking and I will keep trying!

I agree that moving a sprayer with long booms around to get the perimeter waypoints would be a little cumbersome, but it only has to be done once. You can keep those points in a file for use in the future.

I have also thought about building a handheld unit running Ardupilot that I can take around and store these waypoints. That way I don’t have to take the real vehicle. I would have to allow for the boom length in where I capture the waypoints, but I think it could work. It would just take an autopilot module such as a Pixhawk with an RTK GPS in rover mode, and a computer, I think.

If you’re near buildings or trees, you may consider a L1/L2 GPS unit. They’re more expensive, but they’re more accurate when GPS signals start bouncing around. L1-only units like the Here+ and Emlid Reach M+ will only get you so far.

Hi Nathan, thanks for your post.

At the moment I’m using a low cost ublox sensor M8T, with RTKlib application… I have to say that, It works pretty well in fields were you have open sky condition (ant this is true for the most of casea on lands). Once you get a fix , It remain stable for ours. Off course I’ll consider a double frequency GPS for the future just because It should get a fix quickly than my single frequency M8T.

If somebody is interested to low cost L1/L2 receiver:


Regarding the precise boundary definition, I have to say it is a mandatory prerequisite for me so I’ll deep analyze the possibility to use another vehicle for quick and precise mapping of the field… I’ll let you know about my progress.
Coming back to our Rover, I don’t understand why we should need an hydraulic sistem… I mean, if we have two Electric motors each one with a proper encoder, and each one driving a track, it should be enough for driving the Rover straigh on the lane. How is your badboy actuated?

Nathan (@Naterater), Thanks for mentioning the L1/L2 systems. I really didn’t know how much they would help me because at the moment, like Domenico, the single frequency RTK has worked well for me as I am very much in the open. I have my eyes on the ZED-F9P that Domenico mentioned, though, for the future. I am currently using the Ublox M8P.

My concern is that the electric motors (and of course the supporting electrical system) would have to be pretty big. I have not tried to figure out how much horsepower (or kW) would be required for a sprayer with perhaps 100 gallons of water (378 kilograms). I would think we want it to move at least at 3 mph (~5 kph). Have you determined what size motor would be required?

The Bad Boy mower has hydraulic motors. The particular one I converted has a combination pump and motor at each wheel. The larger units have separate pumps and motors. To actuate it, I am using a linear actuator that attaches down inside the engine compartment to the levers that an operator would normally move by hand. I posted a picture here: Skid Steer Mower Overshooting pivot turns. You might enjoy reading through that long thread but be aware that since most of that was written, there have been improvements to the software so some of the issues mentioned there have been resolved.

1 Like

A low pressure pump (up to 10 bar) with a flow rate of 80 liters per minute (similar to my convencional sprayer) Is operated with 1.2-1.3 kW. If we consider 1kw per track, that will be enough to power a 0.6 tons vehicle at a working Speed of 10km/your, a 4.5 kW Electric generator should be ok assurding a good power reserve.

It’s still a rough estimation but it gives an idea of our possibilities.

By the way, I would like to experiment with a scaled down vehicle in order to test the ardupilot compatibility of my project and to allow me to learn something more on it.

Do you know where I can start from to build a small tracked Rover (let say a 60 x 60 cm big)?
I mean, which motor, controller, radio ecc. Do INeed?

1 Like

Thanks for those calculations of power required. I had not tried (and didn’t know where to get the info to calculate that.) For my FIRST (because I know I will want to improve!) sprayer, I am considering using a Bad Boy mower. I figure if I remove the mowing deck and the seat and the operator, that the weight of the liquid and other equipment will not be way more than it was designed to handle and if the engineers were conservative, it might work. I am thinking I will use a small boom on that one. Yes, it will take longer to spray but I’ll be sitting in the air conditioning while it does it!

I have seen several electric rovers of the size you are talking about on this forum but right now I can’t put my eyes on them. I know that some people have experimented with an electric wheel chair. If you could find a used one of those, you would have a good start.

This person has several videos on his automation of an electric wheel chair:

And this person has some cool videos of his rover but it is standard Ackerman steering, not skid-steer:

One more: They are a little old, but you might glean something from them.

I do not know much about the speed controllers for the motors, either. Sorry! Perhaps someone is following and can comment. I have seen posts on the forum about them. I just haven’t been in tune to that! (Brain overload!)

For my remote control radio, I have used the RadioLink T8FB ( since the beginning. The range is about 1500 feet or so. I see a lot of people using Taranis brand remote controls. I believe they are a good bit more expensive but have better range and features. I am experimenting now with a new remote from China, the Skydroid M12L. It has much better range and features but also costs more. But for initial work, the $50 T8FB kit is hard to beat I think. For telemetry, I use a 3DR 433 MHz kit (

ALL the parts I started with, including links to where I bought them, are in the comments of this video: BUT, beware that I have changed several things related to the RTK communication between the GPS base and rover. Otherwise, the parts there are what I am currently using. I need to create an updated video!

1 Like

Hello everibody,

Thanks to the community and in particular to kenny for his support, I’m going to begin the construction of my Rover. It will be just a bit more of a Toy but I need it to experiment the system before to scale up it to the final real dimension. Again my goal is to build an autonomous sprayer able to spray hectars of lands.
Even if the project is almost there in my mind,there’s still a problem I have.
Kenny explained me how the Rover follows a route using waypoint setted in Mission planer. At the beginning I thought it is a good strategy but today I Have to come back on my steps.
The tractor autosteering system I built a year ago use a different strategy and in my opinion it’s the best for this kind of application where a very good pass to pass accuracy is mandatory.
It use a program called Cerea autosteer and when you start, you need to define 2 points, A and B taken at the beginning and at the end of the first path line. They define the heading of all the parallel paths. The programm shows on the screen the path line nearest to the rover GPS position and drive it closest to the line continuously.
This is a video tutorial of cerea autosteer, it’s only in deutch, unfortunatly

As you can see the result is perfect.

The most important thing is that the program drives the rover through the nearest point of the teorical path and it do it indipendently from the waypoint at the end of the line. It’s like a mission planer mission made with infinite numer of waypoints or a huge number at least that are the points of the line to be followed.
Do you understand the difference? The pass to pass accuracy of Mission planer depends by the starting point of the rover. If the rover Path starts with a meter error from the teoretical starting position of the Path line, it will reduce to zero this error only at the ending waypoint. The problem is that we will have a coverage gap since the last two path lines will not be parallel.

I hope somebody understand my explanation written with my orribile english… in case I’ll try to do better…

At the end,my question is: is it possibile to adopt or develop a similar path following strategy such as Cerea in ardupilot rover?

I followed Cerea at begining in Agroterra forum :slight_smile: , if you draw poligons in same direction than you want to go why you say is different? The only difference is that you have to set home point and them draw the survey instead to set point B. You can set lines orientation too if you need