Release Rover-4.4 as stable OK?

I have a LiDAR unit mounted on my rover. Whenever it detects an obstacle in the same place as the waypoint is located, it goes around the obstacle, simultaneously missing the waypoint, turning around and trying to hit the waypoint again. I think WP_RADIUS should prevent it from missing the waypoint and make it go forward without turning around.

Just to clarify, I am using normal servo steering, just like a regular RC car, so pivot turns aren’t the problem, just the issue about very low tolerance of waypoints (the vehicle needs to get very close to a waypoint in order to achieve it), which is probably caused by the WP_RADIUS being set really low, and It doesn’t change when I set it to a higher number.

@rmackay9 Troubles solved. RC_Min/Trim/Max did not correspond to the Values from the Transmitter.
No idea, so far, why they are not correct after Setup/Radio calibration.
After I set it manually, Throttle and the Servo scaled function worked.
Thank you for helping.

1 Like

@DawidBoTak,

If you’ve got a log I can take a look at the waypoint-not-being-achieved issue although if the WP_RADIUS has been set very low then that will be the problem.

The issue of object avoidance circling a waypoint that is blocked by an obstacle is an existing issue and we won’t be able to resolve that in 4.4 or 4.5 I think. The best we can hope for really is to get either of these versions out at all with navigation performance good enough to make people happy.

Thank you for the information. I will send a log ASAP.

Before mounting the lidar, i had my WP_RADIUS set to around 60cm, but after mounting it and updating the firmware on my FC, i haven’t been able to set different WP_RADIUS since then.

My only solution for now is just to set the minimal amount of waypoints and set them as far away from each other as possible.

Here are the logs from a drive from 2 days ago:

@Yuri_Rage (and anyone else who is interested),

This PR has some potential improvements to navigation especially for skid-steering vehicles doing pivot turns.

I still need to test it on my own little rover to see what it’s like on a real vehicle and if that goes well I’ll make a version available for everyone.

Re the two points you raised:

  1. S-Curve nav cuts corners at greater of TURN_RADIUS or WP_RADIUS
  2. Pivot turns consider nav leg complete within WP_RADIUS of waypoint

Yes, I totally agree on point 1.

I’m less sure that point 2 is correct. I think this worked well on your vehicle because it was very carefully tuned so that when it crossed the WP_RADIUS (and 4.2 stopped navigation) the vehicle’s deceleration was just right so that it would stop very close to the waypoint. Your vehicle managed to do this but I think others struggled to achieve this perfection.

1 Like

Fair point that I did agonize quite a bit over the details to achieve that degree of precision. But I do think that user expectation (at least at present) matches my statement 2. What do you propose as the alternative? No use of WP_RADIUS for nav segments that terminate in pivots?

3 Likes

Hi @Yuri_Rage,

Yes, for situations where the vehicle stops at a waypoint, it will attempt to get as close as possible to that waypoint. I think this is what most people want and if we don’t do this then I think many users will just end up setting the WP_RADIUS to really small values.

By the way, I’ve also greatly simplified the rover quiktune script so that it only calculates the feed-forward gains (e.g. ATC_STR_RAT_FF, CRUISE_SPEED+CRUISE_THROTTLE) and then it simply sets the corresponding P and I values to configurable ratios of the FF values. I’ll do a posting on Monday to see if anyone wants to try it out.

By the way, while testing the above I found that a potential large reason for the wobble after a pivot turn is that the turn-rate controller gets a lot of I-term build up as it’s pivoting. Working this I-term off on the next leg causes a wobble.

3 Likes

@rmackay9 Hello, I added a TFMini Plus Lidar on the Rover.
It works great and precise. But the vehicle does not stop for an obstacle in Acro Mode.
The Log.Test 12 -3.bin - Google Drive
As I tested it first, it worked. Even with full speed (10m/s) against the same wall.
Have I tuned something wrong?
Here a graphic to show the approach and the reaction of ThrottleOut.

Edit, halfe solved,
When PRX1_TYPE is set to 0, then the Rangfinder Value is displayed via Telemetry in MP Groundstation under Data/Status/RangfinderX but do not Stopp the vehicle.
When PRX1_TYPE is set to 4 (as discribed in the Wiki) then the Value is displayed but the vehicle does not stopp near an obstacle.
Is this the intention?

Edit, Issue found:
When set PRX1_Type to 4, the Value of the Lidar is displayed at the Ground Station MP as “Sonar Range” and no longer as Rangefinder1. This in MP with Windows and MP for Android.
But correct at the Ground Station QGroundcontrol.

I can’t analize where it is distorted. (FW Rover or MP)