Rover-3.3.0-rc1 is available for beta testing using the Mission Planner (and perhaps other GCS’s) beta firmwares link.
Changes vs 3.2.3:
- Simple object avoidance support
- Circular and polygon fence support
- Pivot turn improvements
a) Heading control used to aim at new target
b) ATC_STR_ACC_MAX limits maximum rotational acceleration
c) ATC_STR_RAT_MAX limits maximum rotation rate
- Allow ACRO mode without GPS for skid-steering vehicles (reverts to manual throttle)
- MOT_THR_MIN used as deadzone
- Parameter default changes:
a) PIVOT_TURN_ANGLE default raised from 30 to 60 degrees
b) ATC_STR_RAT_P and I reduced to 0.2
c) ATC_STR_RAT_FILT and ATC_SPEED_FILT reduced from 50hz to 10hz to better match vehicle response time
- Boats report themselves as boats allowing ground stations to display boat icon on map
- ChibiOS support. Upload instructions are here.
Any testing people can do is greatly appreciated. The Rover wiki will be updated over the next week or two with info on some of these new features and of course we’re here to answer any questions beta testers might have. Thanks!
Can you explain how the heading control works ?
Here are my initial test results
- Going from reverse to forward, wet dog shaking is reduced but that may be due to very slow pivot turning
- Sometime pivot turning does not seem to have enough throttle to pivot, so the robot just sits there motionless.
- Unable to disarm so I can get to the logfile to upload here.
- Going from forward to reverse still occasionally fails… ie. it just rotates 180 degrees and then tries to shake like a wet dog.
I’ve minimized the wet dog shake and 180 deg rotate by setting
a) ATC_ACCEL_MAX to 2
b) Pivot Angle to 60 (from 30)
Tested this a short while ago with Solex and Tower. I haven’t gotten into tuning it much yet. With the settings I have, pivot turns start out at the normal turn rate, then slow until it’s pointed at the next waypoint. This works perfectly when the turns are on pavement or hard surfaces, and almost perfectly in tall grass where there’s resistance.
Is there a way to adjust that rate of slow down during a pivot turn?
Thanks for the feedback.
Yes, you can see the response curve on this PR and I’ve copied the shape of the curve below. As you say, it climbs quite rapidly to the ATC_STR_RATE_MAX speed but then it will slow down as it gets close to the target heading. The slope of that curve comes a lot from the ATC_STR_ANG_P parameter. So a lower value will make it slow down more slowly, a higher value will make it maintain the top speed for longer.
The rate at which the rotation rate increases and decreases is limited by the ATC_STR_ACC_MAX parameter (default is 360deg/sec/sec). So if you make this lower it will get to the top rotation speed more slowly. We need to be careful not to set this acceleration too low though or it can lead to really crappy behaviour including overshooting the target massively.
With a bit of thought we can probably make the response curve whatever we want but this was quite easy to do and a significant improvement over the old ham-fisted method.
Great, thanks for the feedback.
Perhaps we should increase the ATC_STR_ANG_P from 1 to 2. That should make the pivot turn more aggressive. I also suspect we need a little more ATC_STR_RAT_I to make sure it can overcome the friction but that needs more testing because it can also lead to overshoot.
Did some tuning yesterday on the various params for turning. I’m pretty happy with the way it’s working now, it’s aggressive enough to make a turn in a timely fashion in tall grass (which I left un-mowed for this test), but not so aggressive it overshoots on pavement.
A couple of things to note:
I’m running with the “hood” off while testing with a mast and a couple of WiFi adapters I’m using to get 1000+ foot range.
Winter was really rough on my yard.
That does look good! I guess the main parameters you might have changed are these?
- ATC_STR_ANG_P : converts the angle error to a desired turn rate
- ATC_STR_RAT_MAX : vehicle’s maximum rotation rate (deg/sec)
- ATC_STR_ACC_MAX : vehicle’s maximum rotational acceleration (deg/sec/sec)
I was using 4, 90, 720. That last number seems incredibly high so I think a much lower value would be fine.
For those willing to try out ArduPilot with ChibiOS, the upload instructions are here.
Oops, I guess it would have been helpful to mention what I tuned. Here
are the ones I adjusted, and their values:
. ATC_STR_ANG_P: 2.5
. ATC_STR_RAT_MAX: 360
. ATC_STR_ACC_MAX: 180
Overall, that seemed to give it the most fluid motion in turns. The ability
to ramp up and down to/from the max turn rate is awesome to have.
Great, I’ve updated the AION R1 default params and actually the default params for all frames.
Great, thanks so much for testing. I think we will push out a 3.3.0-rc2 with this new feature so it can be included in the official 3.3 release.