360° Lidar ignore angel question

I have a 360° lidar and want to hide an attachment of the copter exactly 180° to the back. Are the parameters for this PRX_IGN_ANG1=180 and PRX_IGN_WID1=40 (20° to the right and to the left) or PRX_IGN_ANG1=160 and PRX_IGN_WID1=40

@webmotions,

The angle should be provided for the middle of the obstructions. So it would be PRX_IGN_ANG1 = 180 and PRX_IGN_WID1 = 40.

Can I ask which 360 lidar you are using? I think that some of the drivers don’t respect these parameters. We’ve got some fixes for this coming in Copter-4.0.4.

@rmackay9
Thank you!
it is a RPLidar A2M8 and it is mounted this wayimage

@rmackay9
we have tested the lidar today with 2 angles to fade out, 160° and 200° with 40° arc each. At low altitude (about 1.50m) the copter started to oscillate to 0° when encountering an obstacle. I guess by the braking angle the ground was in the lidar. Or I was standing too close myself. Maybe 2 suggestions for improvement:

  1. Hide all measurements below 50 cm in general
  2. if there are several obstacles in different directions, remain in position.

We just flew again. I can confirm that the ignore angel parameters are ignored by the RPLidar. From time to time the MissionPlanner Proximity Radar window shows readings of 0.3 - 1.3m between 160° and 220°. Is there already a 4.0.4 beta that I could test?

There is already a PR to choose Maximum and minimum detection distances for Proximity Lidars.

Also, some users have reported glitches with the RPLidar A2. There were some thoughts about getting a filtered distance, to avoid glitches, but I am not sure in which state of development is it.

My coding skills are limited, but with some help and a lot of patience, I think I could try to solve some issues.

i compiled 4.0.4 dev with the following code change in:
ArduPilot/ardupilot/tree/master/libraries/AP_Proximity/AP_Proximity_RPLidarA2.cpp

// get maximum distance (in meters) of sensor
float AP_Proximity_RPLidarA2::distance_max() const
{
return 10.0f; //16m max range RPLIDAR2, if you want to support the 8m version this is the only line to change
}

// get minimum distance (in meters) of sensor
float AP_Proximity_RPLidarA2::distance_min() const
{
return 1.00f; //20cm min range RPLIDAR2
}
But getting allways prearm failed need 3dfix messages (with 12Sats an hdop < 1,4m)

@webmotions,

Thanks for your perseverance. I think the “need 3dfix” issue is most likely not a software or configuration problem but instead just an environmental issue. It’s possible that it could be the lidar itself although I think that’s probably unlikely.

The RPLidarA2 does not perform well outdoors I’m afraid especially in bright sunlight. During my testing on a rover is would be fine when cloudy but then quite useless when the sun came out. It’s possible that extra filter int he driver might help but I’m not sure.

I think the change to add PRX_DIST_MAX, PRX_DIST_MIN parameters would be good. We do have an issue here about it.

This is the answer from Slamtec:

That’s a normal behavior. A2M8 can only be used in indoor enviroenment. If you want to use a radar outdoor, you may consider our A3 or S1. They can be used indoor and outdoor. And compared to A3,S1 has better perfermance in outdoor environment.

I have also complained that the A2M8 is not balanced, which has the consequence with my Multicopter that the gyro calibration is not always successful when switching on…

I see that we are not the only one with a balance problem on their units. :wink: We had the same problem with the A3.

Hi @Christian81
i have ordered an A3, is it working with Arducopter?

Yes it works, just had to change the baudrate to 256k.

S1 is lighter and has better performance in outdoor environment and are almost in the same price range. I would go for the S1.

@andresrc take a look at the photo above. Due to the construction I had to replace the A2M8 by the A3. But the S1 is definitely on the wish list. I just have to rebuild the handle a little bit.