Added some noise to the LiDAR output, needs to

be tested
This commit is contained in:
Daniel Santos-Olivan 2020-06-26 14:48:23 +02:00 committed by Marc Garcia Puig
parent cea1981b5c
commit 3902c256da
1 changed files with 9 additions and 0 deletions

View File

@ -28,6 +28,8 @@ ARayCastLidar::ARayCastLidar(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
PrimaryActorTick.bCanEverTick = true;
RandomEngine = CreateDefaultSubobject<URandomEngine>(TEXT("RandomEngine"));
}
void ARayCastLidar::Set(const FActorDescription &ActorDescription)
@ -139,6 +141,10 @@ float ARayCastLidar::ComputeIntensity(const FVector &LidarBodyLoc, const FVector
bool ARayCastLidar::ShootLaser(const uint32 Channel, const float HorizontalAngle, FVector &XYZ, float &Intensity) const
{
if(RandomEngine->GetUniformFloat() > 0.7f)
return false;
const float VerticalAngle = LaserAngles[Channel];
FCollisionQueryParams TraceParams = FCollisionQueryParams(FName(TEXT("Laser_Trace")), true, this);
@ -186,6 +192,9 @@ bool ARayCastLidar::ShootLaser(const uint32 Channel, const float HorizontalAngle
Intensity = ComputeIntensity(LidarBodyLoc, XYZ, HitInfo);
if(Intensity*0.5 + 0.5 < RandomEngine->GetUniformFloat())
return false;
return true;
} else {
return false;