Solar Powered Field Rover - Seeking Navigation Tuning Advice

Hi All,

I’ve been continuing to work my solar rover project, and its able to successfully run waypoint missions but not well. I’m having a problem that seems to be somewhat intermittent. The vehicle constantly pulls to the left, then skid steers back on course. See video below.
I’m fairly confident its not a steering tuning problem, because pidachieved seems to match piddesired fairly well. It drives straight in manual and acro modes so this suggests the problem has to do with sensor input or navigation tuning. My hunch is that its a compass issue but the vehicle heading displayed in mission planner appears to be dead on, and the target angle line seems to be correct. It seems as though the software is getting some sort of false heading bias.

I have the pivot turn angle set at 15 degrees, which I know is abnormally small but it stays closer to its course with smaller values. Despite having plenty of steering control in acro mode, there doesn’t seem to be very much (non pivot) turning authority in auto mode, resulting in a heavy reliance on skid steering.

My hunch is that the problem could be one of two things:

  • Compass error (even though the GPS/compass is mounted out away from the steel frame. I’ve even tried physically rotating the compass to add offset with no luck)
  • GPS offset (since the GPS is so far behind the center of rotation it sort of moves in the opposite direction of the turn. Although I’ve tried setting the GPS offset to -1m and it didn’t seem to change much)

Video of poor performance:

Log: https://drive.google.com/file/d/14GnPzu3ZTxzo5LiA7Dbs3qlT81GI3Y9v/view?usp=sharing

Previous solar rover video: https://www.youtube.com/watch?v=nv2FbwjIZRE

Any advice would be greatly appreciated!

Daniel,
Cool looking vehicle!
Does your vehicle steer pretty close to straight in manual with just a straight forward throttle from your remote? Just wondering if it is tracking true. I like to put my rover up on jack stands (it is heavy) and check the wheel rotation forward and reverse to see that both sides are close to the same.

I just wanted to ask in case that is part of the problem and not actually anything tuning related.
Kenny

Thanks Kenny! Yes, it’s straight as an arrow in manual mode. Must be something with heading input error

I bet you have already done this, but I will ask: Have you followed Randy’s (@rmackay9) tutorials on tuning here and following: https://ardupilot.org/rover/docs/rover-tuning-throttle-and-speed.html?

Daniel,
I very much like your work, it looks like fun.

To my highly untrained eye your problem might possibly be due to a throttle response issue.
This wouldn’t show up in manual but might in STEERING mode.
I experienced similar issues but to much less of an extent until I eliminated a throttle dead band and had smooth throttle response accelerating from dead stop.

Like you my initial thought was compass error or GPS offset. Can you temporarily relocate the compass and GPS closer to the turn centre?
Bill

1 Like

Thanks for the suggestions! Made some good progress today. I realized ATC_STR_RAT_FILT was largely the culprit. A long time ago I set it to 0.1 because this seemed to solve a different oscillation problem I was having. Setting it so low caused steering response to be really sluggish, and this is likely the cause of the woozy behavior seen in my video above. When I set it between 1 and 10 the vehicle would go unstable, but setting it much higher (above 20) seems to work well. Looks like the default is 10?

The parameters ATC_STR_RAT_FLTT, ATC_STR_RAT_FLTE, ATC_STR_RAT_FLTD seems to have similar effects but I can’t quite figure out exactly what they do.

My only issue now is that the rover doesn’t seem to do non-skidsteering turns sharply enough, even though all my turn rates are cranked up. This causes it to rely too heavily on skid steering while I’d prefer to have it make smoother turns.

Do you still have the pivot turn angle set at 15 degrees even with the improved steering stability? If so it might be hard to get any non-skid turns. When we were experimenting with skid turns with our aquaculture feeder we had to widen the value out to about 30 degrees to get away from almost exclusive skid turning.

We also had to experiment with the waypoint radius to get a suitable mixture of skid turns and non-skid turns.

I bumped it up to 45 which seems to be a good mix of accuracy and not skid steering every 5 seconds. I’ll try experimenting with waypoint radius soon. Thanks for the suggestion!

1 Like

Nice, been following your progress on yt.

My rover sort of does the same thing. In acro mode I have full controll, in auto mode it behaves very different.
When I put it in steering mode its very sluggish.
I have to play with some settngs but in auto mode it follows the waypoints pretty good.
As it is a skid steering rover I had to tone down the steering params or else it turned way to quick.

I’m currently testing a simple collision avoidance sensor (lidar) at the front, but have some weird GPS stuff going on that I have to fix first.