Understanding the way noise is applied to sensors

Requests regarding how to set up experiments in ARGoS.
Posts: 40
Joined: Sat Aug 24, 2013 5:08 pm

Understanding the way noise is applied to sensors

Postby Elendurwen » Wed Jul 11, 2018 11:46 am


I am using the blob omnidirectional camera of footbot. I want to add noise to the simulation using the noise_std_dev XML attribute. I am struggling to understand the way in which noise is added.

I found this code in colored_blob_omnidirectional_camera_rotzonly_sensor.cpp:

Code: Select all

/* If noise was setup, add it */ if(m_fDistanceNoiseStdDev > 0.0f) { m_cLEDRelativePosXY += CVector2( m_cLEDRelativePosXY.Length() * m_pcRNG->Gaussian(m_fDistanceNoiseStdDev), m_pcRNG->Uniform(CRadians::UNSIGNED_RANGE)); }
From the way I understand the code, the perceived distance changes proportionally to the actual distance, using the noise_std_dev as parameter. However, why doesn't the random generator function for angle also include the parameter? Is the angle generated completely randomly between 0 +/- 360?

Site Admin
Posts: 296
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA

Re: Understanding the way noise is applied to sensors

Postby pincy » Thu Jul 12, 2018 5:33 pm

The way noise is calculated is by adding a vector whose angle is uniformly chosen between 0 and 360 degrees, and whose length is scaled by a zero-mean Gaussian.

The reason why we didn't add a parameter for the angle is that we never found data that biased the angle in a specific range. We can always improve the model if you think you need something different! Do you have a proposal?
I made ARGoS.

Return to “How to... ?”