Rover 4.0.0 Skid Steer setup

Edit: See solution below

Hey y’all, I’m working on building up a manually controlled lawnmower using skid steer. Here’s what I’ve got:

  • Pixhawk 2.4.8 (Set up with Rover 4.0.0 official)
  • Power distribution board (Capable of up to 30A)
  • PPM Encoder
  • 4 Channel transmitter
  • Lipo battery (tested and working on a drone)
  • An ESC per motor (Each 30A)

Pretty standard stuff. I can test the motors and ESCs by plugging them directly into the receiver and getting the motors to spin, so I know that the motors, ESCs, and power distribution board is/are ok. It also means that my transmitter is ok. I was able to hop into Ardupilot and confirm that the Pixhawk is actually getting inputs from my PPM encoder on the receiver (Receiver calibration works just fine). I’ve got my ESCs plugged into output ports 1 and 3, per the documentation.

However, I have three critical issues. First, I can’t run the ESC calibration. The error message I get is “Set param error. Please ensure your version is AC3.3+” despite being on Rover version 4.0.0 official. I’m also not seeing any servo output at all. I tried installing Copter 4.0.7 and was able to test the servo output and see my throttle inputs actually doing something on that Copter version, but the outputs don’t change on Rover. I have channels 1 and 3 configured to be ThrottleLeft and ThrottleRight, and just for giggles I swapped it to just Throttle, but that didn’t change anything. Finally, my motors don’t pulse unless I actually unplug my ESCs from the Pixhawk. Just to see if it would do anything, I’ve even tried disabling arming requirements. Any input I could get from you would be greatly appreciated

2 Likes

Re ESC calibration, this feature is only for Copter. I’m surprised it’s even visible when using Rover so I’ve raised an issue to have it hidden.

I don’t think I’ve actually ever calibrated my rover or boat’s ESCs although I would have thought it would be good to get the RCx_MIN and RCx_MAX to match the limits of the ESC. It may not be too critical though on most vehicles.

We have this wiki page (which you’ve probably already seen) which discusses the setup for the minimum throttle which is certainly important to account for the ESC’s deadband.

I have seen that page. I tinkered with those settings, but didn’t succeed in getting the outputs to even move a little on the servo output page

Ok. I got it all working and since I hate when people just leave it at that, let me step y’all through my findings. Since I’m brand new to Ardupilot and Pixhawk, I’m going to go in depth into what I found.

Per this entry, I tried setting ARMING_REQUIRE to 0 and ARMING_CHECK 0. That, combined with plugging the battery in first, allowing the Pixhawk to boot completely into armed mode, and then once it’s there, connecting to Ardupilot seemed to allow me to get some semblance of control over the motors (push in the arming switch before connecting, too). Plugging the battery in after connecting to Ardupilot would allow me to test the outputs but not turn the motors. If this is something that is giving you consternation, it may be worth a shot.

Next, my motors were spinning wildly out of control when it started. This is less than an ideal scenario and in my case, was because my trim value was too high. I tuned that down until the motors stopped spinning. Next, I followed up by tweaking my PWM output values into ranges where it seemed like it worked right for me. But at this point, forward was the only working command which was puzzling.

I rebooted the Pixhawk and recalibrated the radio. But that didn’t seem to do it for my steering problem. What I ended up trying was binding my yaw and roll to the same channel. This worked a little bit, and my servo output page finally showed life when I was steering… but the output was tiny. That wasn’t quite enough. Originally, my steering was mapped to my yaw, but I swapped the yaw to an unused channel and set the roll to operate off of my steering channel. Success! All that remained was reverse.

I tinkered around a lot with reverse. I tried setting my ESCs to Brushed BiPolar, since the wiki seemed to describe that as the choice for skid steering. No dice. So, flinging solutions at the wall to see what stuck, I tried the other brushed option. Weirdly enough, that got it working for me.

So all in all, it was a bit of a pain in the butt to get set up, but get set up I did. If you’re reading this and you’re in my shoes, hopefully this writeup helps you.

I may have discovered a potential bug in testing the newest beta version - but I’m not sure how to go about reporting it.

To trigger it, set up a skid steer like I have done and set the ESCs to the brushed option that is not brushed bipolar. Power the motors up, and allow them to arm. Test the motors to ensure they’re actually moving. Then, power the whole rig down and reboot from battery power under normal conditions. The Pixhawk led will display as red instead of solid blue, and the outputs will refuse to actually spin even with the safety switch active and skipping the arming step.

To work around it, you can configure it back to normal mode and back into the ESC flavor that works for you to kick it in the pants and get it to work until the next full reboot.

hi drmeat, i also faced the same problem
Exactly the same issue where im also doing for lawn mower with same 30a motordriver