This sensor computes the magnetic field vector, at the sensor position. It relies on the WMM2015 model, available at NOAA.


For proper computation, the sensor needs a real position on Earth, and so the following properties should be added at the environment level:

  • longitude in degrees (double) of Blender origin
  • latitude in degrees (double) of Blender origin
  • altitude in m of the Blender origin
  • optionnaly angle_against_north in degrees is the angle between geographic north and the blender X axis. angle_against_north is positive when the blender X-axis is east of true north, and negative when it is to the west.

Configuration parameters for Magnetometer

You can set these properties in your scripts with <component>.properties(<property1>=..., <property2>=...).

  • date (float, default: None)
    the date used to adjust for magnetic field. If not precised, consider the today date

Data fields

This sensor exports these datafields at each simulation step:

  • timestamp (float, initial value: 0.0)
    number of seconds in simulated time
  • x (float, initial value: 0.0)
    Northern component of the magnetic field vector, in nT
  • y (float, initial value: 0.0)
    Eastern component of the magnetic field vector, in nT
  • z (float, initial value: 0.0)
    Downward component of the magnetic field vector, in nT

Interface support:

Services for Magnetometer

  • get_configurations() (blocking)

    Returns the configurations of a component (parsed from the properties).

    • Return value

      a dictionary of the current component’s configurations

  • get_local_data() (blocking)

    Returns the current data stored in the sensor.

    • Return value

      a dictionary of the current sensor’s data

  • get_properties() (blocking)

    Returns the properties of a component.

    • Return value

      a dictionary of the current component’s properties

  • set_property(prop_name, prop_val) (blocking)

    Modify one property on a component

    • Parameters

      • prop_name: the name of the property to modify (as shown the documentation)
      • prop_val: the new value of the property. Note that there is no checking about the type of the value so be careful
    • Return value



The following examples show how to use this component in a Builder script:

from morse.builder import *

# adds a default robot (the MORSE mascott!)
robot = Morsy()

# creates a new instance of the sensor
magnetometer = Magnetometer()

# place your component at the correct location
magnetometer.translate(<x>, <y>, <z>)
magnetometer.rotate(<rx>, <ry>, <rz>)


# define one or several communication interface, like 'socket'

env = Environment('empty')

Other sources of examples

(This page has been auto-generated from MORSE module morse.sensors.magnetometer.)