EEEManchester / gazebo_radiation_plugin

9 stars 5 forks source link

How to detect only sources bellow the sensor? #9

Closed HenryPCardoso closed 2 months ago

HenryPCardoso commented 2 months ago

I am currently conducting research aimed at detecting underground sources using the radiation sensor. However, I'm encountering difficulties in configuring the sensor to specifically detect sources located beneath it. I have attempted to adjust the sensor's parameters, such as setting the collimated type to "slot" and modifying the values of azimuth_limit, angle_limit, and elevation_limit. Despite these efforts, I haven't been successful in achieving the desired outcome.

I would greatly appreciate it if someone could provide guidance on how to configure the sensor to detect only sources positioned below it. Additionally, I would like to understand in detail how the parameters azimuth_limit, angle_limit, and elevation_limit function, so that I can effectively create the necessary setup to detect underground sources.

Thank you in advance for any assistance or insights provided.

DrAndyWest commented 2 months ago

Hi Henry,

Thanks for getting in contact. Probably the easiest way would be to use the sensitivity function. This takes the angle relative to the x-axis and adjusts the intensity. This can be used to "ignore" radiation from certain directions, without needing the proper calculations of say a lead collimated detector.

The only option currently is a Gaussian, so if you take a gaussian with a small sigma then it will only detect sources which are in that general direction. If you set up your detector to point downwards, then you should preferentially detect sources below the sensor.

That being said, if you had some incredibly strong sources above the sensor (where it is not very sensitive), it will still pick up a tiny contribution.

If you want to have a more technical chat, drop me a message.

HenryPCardoso commented 2 months ago

Thank you very much for your response.

I successfully implemented a new mode, which I've named "underground", in the RadiationSensor.cpp file. In this mode, I exclusively capture values from sources located within a cone beneath the sensor. This cone is defined by the sensor's range and a new variable introduced in both the sensor.yaml and the cpp script, named Cone_Radius.

With this implementation, I've effectively addressed the issue.

If you want to have this mode on github I can commit it or I can send it to you to commit it.