Robo Mower

(Mr337) #1

Hi All,

I know this is an unconventional project since it doesn’t fly, but Navio2 was really important to getting things running. I’d like to share my robot mower.

Some details in the vid but its running ROS with a Navio2 board. The Navio2 is how I do I interface with things like GPS, RC In/Out, I2C, and will be used for some simple sensor interfacing. All while the Rpi3 is running ROS in making decisions.

Currently the fastest I have it is 1.5ms/ (3.3 mph) while still keeping cutting accuracy. My error is normally within 4 inches but can peak to 8 inches with really rough terrain, think hay/cow field, as in the video. Running anything faster than 5mph would physically beat you to death.

Navio2 + RPI3
Arduino Nano
Motor Controller

Interfaces provided by Navio2 SDK

(Mikhail) #2

@mr337 this is really cool! Can you share a recorded track?

(Mr337) #3

Where are my manners? :slight_smile:

Sure thing, here is a track where my mower hit a mega whole that I didn’t know was in the field:

Here is a smaller track, about 10m long:

Here is a spiral cut to test turns and tighter turns - still WIP:

(Brad Bazemore) #4

source code?


Not sure what i should worry about. You driving in a more straight line then gps unit, or the unit not beeing able to drive as straight as you :joy: . Just kidding, Impressive work.
Is there any correction for tilt when driving in sloped areas? Or is it to close to the ground for that.

(Mr337) #6

@sonyccd I don’t have any plans on opening sourcing this atm. I can open source the ROS interfaces directly if anyone is interested (not ardupilot related)

@TB_RTK No kidding, right now it is a little jerky but since this video I have been working on V2. The steering controller will operate at a much higher rate thus smoother corrections. As for tilt compensation, for now I think it is ok. I plan on moving the position over the mowing deck and much lower to rid of the problem entirely. This video was the last time I was able to test it before winter set in at my location. Running it is fun but not in 30F degrees with strong winds. Hasn’t warmed up yet for this year.

(Brad Bazemore) #7

What was ROS doing? Did ros take care of navigation or was that the ardupilot?

(Mr337) #8

ROS was doing a little of everything :smiley: No ardupilot is on the mower any where.

(Brad Bazemore) #9

what nodes are you using, navsat, movebase etc?

(Mr337) #10

http://wiki.ros.org/nmea_navsat_driver all the rest is custom for my requirements. Ardupilot navigation didn’t work like I wanted so had roll my own.

(Brad Bazemore) #11

I would love to see your ros stuff as I am trying to get a rover to follow gps paths but am having a problem with the transforms

(Mr337) #12

Since you are at the rover level the transforms should be easy vs a multi jointed robotic arm. As for the path following it is simple math. A lot of it depends on your tolerances that define things like update rate. Also depending on your rover you will need to do some investigation on the model for the control system.

The quickest thing for testing would be to do it in simulation first. I know it sucks when you are building models and the pay off is big with time. Gazebo supports several types of drive systems, I use http://gazebosim.org/tutorials?tut=ros_gzplugins#DifferentialDrive since it aligns closely with my mower.

What kind of problem are you having?

(Brad Bazemore) #13

I have done all that and the robot is Clearpath Jackal. The problem is giving the goal in lat long to move base.

(Mr337) #14

You’ll need to dig into that, the nav stack I still need to investigate, but there were some requirements that I needed that it didn’t provide. IIRC it was something about the navstack can make a guarantee to get to a location, but has no control on how to gets there. Or something weird like that. Best of luck!

(Ruudjantheuws) #15

Hi mr337,

Can you pls contact me via private message? I am trying to do build the same, I want my application to drive to certain gps coordinates in the fields. I want to know which hardware I need to order. Also want to give you more information of the goal.

I would realy apprieciate any kind of response and help.
Many thanks in advance!!

(Mr337) #16

Hey @ruudjantheuws, this is an open forum so feel free to post, other ppl may join in and contribute too!

(Davide Ravaglia) #17

Hi everyone, i found your project very interesting, i 'd like to control a little caterpillar tractor but i’m not so expert. i would like to know the wiring diagram and how you connect your hardware with actuators. Arduino nano what does it for?

Thanks a lot
very interesting
Have a nice week

(Ruudjantheuws) #18

Hi, mr337 I want to create a fully automated tree cutter based on RTK-gps. I just wanted to know what to order, I already have ordered:
2 x raspberry pi 3B and 1 Navio2 board.

The goal is the following:


  1. based on gps RTK I go with a handheld rover device to every tree in the field and log their exact GPS coordinates. (because the tree’s are not equally planted in a return pattern).

2.once I have all the tree’s coordinates, I want to create a path how the machine needs to drive over the field and stop at every row. The machine is able to cut 10 tree’s at the same width.

Basically I want to create a point somewhere located in the field, and I want my machine to drive to this point and exactly stop at the dot (1"/2,5cm). I read several forums which are saying navio2 RTK could do a precision of 2,5cm.

I would really appreciate it, if you guys could help me a little bit with the hardware setup as I am more a software guy and have less experience with hardware/electronics.

I already downloaded the RTKLIB from emlid, but I don’t know how to go from there.

many thanks in advance.

(Mr337) #19

@davide.ravaglia The nano controlls the linear actuators and ensures they are where they are supposed to be (they have feedback)

Welcome to the club, I’m a software dev that has moved into electronics :smiley:

One thing that needs addressed is how the heck you plan on getting RTK around trees. They tend not to mix. In my vid you should notice there isn’t hardly a single tree around.

Here is a picture of my tree test. As you can tell a lot of the leaves are on the ground and not on the trees, so was hoping it would still work.

Nope, and I’m assuming once the foliage comes back in it will be worse. It is a combination of fix and float and was all over the place. So I’m putting together other localization methods when RTK isn’t available.

(Ruudjantheuws) #20

@mr337, Thanks for the quick response,

Sorry, forgot to mention :smile: I meant young fruit trees few meters high, the machine I am talking about is huge and able to drive over the trees. I want the machine to stop on top of the center where I putted my map/way point gps coordinate before. is this possible. Looked at so many topics and forums but cannot figure out what I need to achieve my goal.