KevinG's Autonomous zero-point turn Lawn Mower

I appreciate the information Kenny. I am going to go ahead and get a pair for my mower.
Thanks!

I have replaced one that I abused multiple times by having the stick in the locked position or blocked by something when the servo was trying to move it. It still lasted a year. The other original one is still going.

2 Likes

Well Kenny I ordered my servos and I getting ready to spend even more money. I am preparing to buy all of my RTK GPS equipment for my zero turn mower build. This also includes equipment for a fixed base station, since I have nothing. I have based my design on using Ardupilot Rover 4.1.0 configured for GPS for Yaw pointing with a compass backup. The GPS equipment seems like the most expensive part of this build and could have the longest lead times (some coming from Switzerland). I just want to post this equipment list for comments and it might be useful if someone else is trying to do the same thing. I am sure I will have to still buy the smaller items, but is this the right list for the main RTK GPS parts? I have noticed that Mouser Electronics has most of this stuff and it is cheaper than buying it from Ardusimple.

SimpleRTK2B starter kit that has 2 GPS/GNSS dual band boards

https://www.mouser.com/ProductDetail/ArduSimple/AS-STARTKIT-LR-L1L2-NANH-00?qs=vHuUswq2%2BswDN7K9yk2dGA%3D%3D

This has 2 of Ublox ZED F9P boards in this kit for the rover plus the long range North American radio setup

Plastic Case for simpleRTK2B boards

https://www.ardusimple.com/product/plastic-case-simplertk2b/

(2 mounting cases)

High gain helical GNSS Multiband antenna

https://www.mouser.com/ProductDetail/ArduSimple/AS-ANT2B-HEL-L1L2-SMA-00?qs=vHuUswq2%2BsyjW3OuGns%2BzA%3D%3D

These are the ArduSimple light weight high gain helical antennas for the rover (2 required)

Vehicle Mount LR/XLR Radio Antenna

https://www.ardusimple.com/product/lr-xlr-antenna-vehicle-mount/

This is the vehicle mounted radio antenna with cable setup for outdoor all weather use (2 required)

Base Station parts list

AS-STARTKIT-BASIC-L1L2-NH-02

https://www.mouser.com/ProductDetail/ArduSimple/AS-STARTKIT-BASIC-L1L2-NH-02?qs=GBLSl2Akiru%2FUw8RAcKyUw%3D%3D

This is a single simpleRTK2B board (Ublox ZED F9P) that does not come with any LR radio equipment.

Radio module Long Range (LR) + Antenna

https://www.ardusimple.com/product/radio-module-long-range/

This is a single LR Range radio module with antenna for base station

Vilros Raspberry Pi 4 Model B Complete Starter Kit with Case and Built in Fan

https://vilros.com/collections/raspberry-pi-kits/products/vilros-raspberry-pi-4-model-b-complete-starter-kit-with-case-and-built-in-fan

The information on the Ardupilot Rover website specified using a Raspberry Pi 3 model B. Does anyone know if the newer model 4 will work? https://www.ardusimple.com/connect-your-simplertk2b-to-a-raspberry-pi/

Raspberry Pi adapter board for simpleRTK2B

https://www.ardusimple.com/product/raspberry-adapter-for-simplertk2b/

This mounts/connects simpleRTK2B UART1 to the Raspberry Pi GPIO header and it powers the simpleRTK2B board directly from the Raspberry Pi.

Survey GNSS Multiband antenna (IP66)

https://www.mouser.com/ProductDetail/ArduSimple/AS-ANT2B-SUR-L1L2-25SMA-00?qs=vHuUswq2%2BswBsit1qMDm7Q%3D%3D

Which GPS setup are you following? I don’t think you need a Raspberry Pi. Ardusimple offers a simpleRTK2B and a lite version that can piggyback on it to provide YAW. I’ve been watching other threads to see if that setup is stable and working and it looks like others are having luck with it. I played with the piggy back configuration a bit and I plan and testing it again soon. Is there anyone on this thread the can confirm that the Pi isn’t needed.

1 Like

I am using the GPS for YAW setup on the Ardupilot website from @rmackay9 https://ardupilot.org/rover/docs/common-gps-for-yaw.html
The Raspberry Pi is for use in building the base station. The base station parts are listed there because it involves buying an Ardusimple board for it also. I am just looking for a cost effective way to get a very reliable mower. I am trying to use what has already proven. I will research using the lite version of the Ardusimple board piggy backed onto a simpleRTK2B board since you have made me aware of that option. It will save on having to use a separate radio antenna for each board to get the GPS correction signal, which seemed unnecessary.
Your experience in these matters is greatly appreciated!

Oh, sorry didn’t realize the RPi was for the base station. I built my base station with just a Ardusimple and a short range 3DR radio. I do use Mission Planner on a separate pc to inject the corrections into the telemetry link, which isn’t ideal. The PC also has a long range telemetry link to the mower so it can cover the whole property fairly easily.

Link to something similar Rover 4.0 + Ardusimple = GPS Yaw debugging

I am nearly there for GPS YAW. Following these settings https://ardupilot.org/rover/docs/common-gps-for-yaw.html with piggyback hardware setup seems to be working, mostly. I have mission planner showing two GPS with one that has RTK float. Since I don’t have any external corrections feeding the system, this means the two GPS are sharing corrections for a moving base rtk. My test rig is indoors and the GPS offsets are not set correctly yet so ardupilot is not accepting the GPS yaw yet. Next I need to move the test rig outdoors, configure the GPS offsets correctly and supply external corrections and see if I get GPS RTK and finally YAW…

You need to install Rover 4.1 first then both GPS need to be connected to the pixhawk for the auto config to work. I made sure I got both GPS working individually first. Then I started making changes according to “GPS for Yaw (aka Moving Baseline)” instructions and put the two GPS in piggyback configuration… Wish me luck, it feels close.

@Christopher_Milner - I’ll let you know if it works :slight_smile:

3 Likes

Steve,
What will the Raspberry Pi do exactly?

The two configurations with which I am familiar are (1) a PC with the base GPS connected to it via USB or serial and with Mission Planner running to inject the RTCM3 corrections into the MAVLink stream, or (2) the base GPS with a telemetry transmitter connected to a serial port sending corrections directly to a telemetry receiver connected to a serial port on the Rover GPS (and the 2nd GPS if present).

The SimpleRTK2B starter kit you are buying has XBEE telemetry radios included which will accomplish option 2 I mention above.

So, I think you can get the SimpleRTK2B starter kit, add the Survey GNSS antenna (that gives you a total of 3 GNSS antennas) and a SimpleRTK2Blite, as Vincent suggests, and you have everything you need. Your rover setup will be as described here: https://www.ardusimple.com/simplertk2heading-hookup-guide/

Keep in mind, that I have yet to try the GPS-for-YAW configuration, though…

Connecting a Raspberry Pi would let you upload the corrections to an internet server (such as rtk2go.com) for more specialized purposes, but I don’t think that is what you need.

Kenny

1 Like

Thanks so much Kenny and others for taking your time to help me out. It was my original intention to configure the base station to send the RTCM3 correction data directly to to the rover over a radio telemetry link. The signal would be received on the rover and routed directly to the GPS units (Option 2 in the discussion). For some reason I thought I needed the Raspberry Pi to make the base station standalone. I have to find the article I read, but I think it was to allow the base station to support WiFi. I was not intending to leave the base station hooked to my laptop. I guess I need good information to read up on in building and using a base station. I assumed the base station needed to be out away from the buildings by itself powered with a solar charged battery (this could be a completely wrong assumption).
In option 1 above where the GPS correction information is brought into the laptop and injected in the MAVLink data stream, how does information get to the rover? I assume this is a different long range telemetry link. Which is the best way to send the RTCM3 correction signal to the rover (option 1 or option 2)? I have not really bought the parts yet to do it one way or the other. I was just leaning towards keeping the correction signals separate to free up the bandwidth of the other communications system and make the whole setup more reliable. I am a novice here. I have not been around this exact equipment and I welcome the comments and advice.
It seems like the overall collective communications to the rover is a big deal. (RC Joystick control, Mission Planner interface, and RTCM3 corrections). I was leaning towards keeping it simple and using separate communication radio systems for each one (all on very different frequencies).

1 Like

Steve,

Keeping the communications separate is what I am doing, but there are pros and cons to each way.

Let me say that I personally have not used the RTCM3 injection via Mission Planner. I have helped a friend remotely via Zoom get his running and so I have seen it a little bit, but I am not an expert on it. If I misstate something, I hope someone else will correct me!

I would say the most common method of getting the RTCM3 messages into the rover is via Option 1. You simply connect your base GPS to your PC via USB and enable RTCM3 Injection in Misison Planner and you are done on the base side. I think there are a few parameters you set properly in Ardurover and you are done on the rover side. The RTCM3 data is sent to the GPS from the flight controller over the same serial link that you would already have connected to receive the GPS location information into the flight controller - so no additional cables.

This method does not require a separate PC for the RTCM3 communication. If you are going to have Mission Planner running continuously during your rover’s mission and the PC is colocated with the base GPS, this is probably the easiest way to go. You can use Mission Planner on this same PC for monitoring the rover and the mission, controlling the rover, etc. The RTCM3 injection is just happening in the background. And on the rover end, the flight controller is stripping out the RTCM3 data and sending it to the GPS.

One advantage of this option is that the flight controller will configure the GPS completely, you do not normally have to preconfigure it using the Ublox Ucenter software. Also, the same is true (I believe anyway) on the base side. Mission Planner will configure the base GPS.

The other option, which I have chosen, is to use some form of telemetry to send the RTCM3 stream directly from the base GPS to the rover GPS. The F9P GPS has 2 serial ports, so one can be connected to your flight controller and the other can be connected to a telemetry receiver to receive the RTCM3 data from the base.

I find this option best for me. I have my mower running very long missions and during the mission, I might move my Mission Planner PC from my shop to my house and have brief times when communication is lost from that PC to the rover. Having the RTCM3 communication handled separately and always operating is better for me.

Option 2 does require configuring your base GPS with Ucenter. Ucenter is a little challenging to learn, mainly because the GPS has so many parameters, organized in Ucenter in a huge tree structure. But once done, it’s done. Also, you have to configure the telemetry radios. I think that if you use the Xbee radios that are part of the Ardusimple kit, you will have an easy time of that. I have not done it, mind you. I am using Adafruit Feather-M0 LoRa boards. These require firmware to packetize the data, transmit and do the reverse on the receive end. I have done that and am glad to share if you want to go that way (https://github.com/ktrussell/Serial_to_LoRa). When I started, I was using the predecessor to the F9P, the M8P. At that time, there was no Ardusimple with the built in socket for the Xbee radios. I am not sure what range you will get with the Xbee versus other radios, but I bet it is good. I would probably try that first.

2 Likes

That was a great reply and helps me and anyone else new to setting up a rover a great deal. I think I now understand the ardu simple rover and base station configurations so I can purchase all that equipment (which is a big part of the equation). I think I will stick with using option 2 for the RTCM3 data to get to the rover via it’s own radio. That just feels better to me and it gives me more flexibility. Plus I don’t have to worry about my computer rebooting or something interrupting the RTCM3 data flow. The radio frequency of the transmission from the XBee boards that come with the SimpleRTK2B kits are operating at 868 MHz and the RFD900 telemetry system I was planning to connect mission planner with the rover will operate at 900 MHz. My worry is that the RF systems might interfere with each other. Is that a valid concern? What frequency does your mission planner interface radio operate at?
By the way you can buy from Ardu Simple a simpleRTK2B+heading setup pre configured with a regular RTK2B board along with a Blite board already mounted on the side of it. Both boards are already pre configured for Yaw steering and will provide accurate heading (UBX protocol).
image
I just thought the picture of the boards together looked great.

1 Like

I have these same boards. They communicate RTCM moving base messages between them via their xbee headers (UART2). The pixhawk connector (UART1) on each board needs to be connected to the pixhawk so that ardupilot can configure them automatically. There are special GPS attributes in ardupilot settings that will make that happen. When configured correctly one GPS will provide location message and the other will provide yaw messages to ardupilot. That leaves RTCM messages from static base to be figured out. You need the RTCM messages from the static base for both GPS units in order to increase their accuracy enough to make position and yaw calculation work. In my case, I inject RTCM corrections from the static base into the telemetry from mission planner running on a pc. These RTCM messages are passed to both GPS units through the pixhawk connector on each board.

If you have these two boards in piggy back configuration and are not injecting RTCM message via the pixhawk connector , I am not sure where you would connect the radio for the base station communication.

Ardupilot does not require piggyback configuration to work. GPS moving base RTCM messages can be configured to route though the pixhawk instead of through UART2. That would leave UART2 open on both boards for RTCM static base messages. The remaining problem would be how to connect two GPS units to a single trransceiver.

My base station uses a RDF 900+ transceiver. Transceivers like these use channel configurations to avoid conflict and more than one set can be used in a single system without too much problem. I have one set from mission planner to the rover and another from mission planner to the base station. I do agree that having to use mission planner for RTCM is not convenient.

I did learn a bunch from setting up the base station. I found that setting the radios and serial ports for 115k baud made things better for auto configuration of the base station with mission planner when using a radio link… Mission planner will default the F9P configuration to 115k baud and if you set the radio to anything else, it will lose communication the moment configuration is done because F9P UART baud will no longer match the radios baud. Sounds simple, but it stumped me for longer that I’d like to admit. Once the base station was configured, I connected the GPS directly to u-center and tuned off all the messages other than RTCM3 and turned off mission planner’s auto config. I found that the radio couldn’t keep with up will all the message and would blank out from time to time. Once I limited the radio communication to RTCM messages, it was rock solid.

2 Likes

Vincent,
Your reply was very helpful for me. I am wondering how Ardusimple would say to handle the RTCM3 comm directly from static base to rover in that piggyback steup?

When I get my mower back going (repairs to do from the fire but too many other things on my plate right now), I am going to go with the moving base pretty soon afterward. I may not use the piggyback way, though and would be able to use a single telemtry radio for the two mobile GPSs. You asked how you could do that. With my LoRa modules, at least, the communication is completely one way, so I can take the TX signal out of the receiving LoRa module on the mower and route it to both GPS RX inputs on their UART2 ports. The TX from UART2 is not used at all.

I’m glad you guys are getting all this figured out before I have to tackle it!! :slight_smile:

Kenny

2 Likes

Steve,
I meant to mention 2 things:

  1. In North America you cannot use 868 Mhz. That is the European version. The Xbee modules you buy should be the 915Mhz version (sometimes written 900Mhz).
  2. You will want to buy antennas for the Xbee modules as you had in your original list.
2 Likes

FYI ROS based system

2 Likes

I got my mower outside and did some configuration and testing of the GPS YAW setup with Rover 4.1 dev. I saw some phenomenal GPS accuracies while pushing the mower around the driveway by hand. I am going to tie down the antennas and routing the wires tonight and do a powered run tomorrow. Hopefully the snow will continue to hold off.

Question: Does anyone know the best way to confirm that GPS is the source of YAW information beyond just configuration?

2 Likes

I did some outdoor testing and double checked all the parameters. I also checked that the distance reported between the two antenna matched that configuration settings. I have RTK Fixed on both GPS units. I don’t see valid YAW messages coming from either GPS units after letting the rover sit for ten minutes the YAW value is consistently 0 in MAVLink Inspector and moving the rover doesn’t change the value. Going to install the latest dev branch of ardurover again and see if it changes.

2 Likes

@Vincent_Miceli,

I’ve never actually used GPS-for-Yaw yet so I only know what’s written on the GPS-for-yaw wiki page. Hopefully some others can pitch in. Perhaps @tridge can help as well as I think he wrote a lot of the feature.

1 Like

sure. Is there a log to look at?

I will run a mission tomorrow and get a clean up to date log and post it here.