Magnetometer ============ This sensor computes the magnetic field vector, at the sensor position. It relies on the WMM2015 model, available `at NOAA `_. .. warning:: 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. .. cssclass:: properties morse-section Configuration parameters for Magnetometer ----------------------------------------- You can set these properties in your scripts with ``.properties(=..., =...)``. - ``date`` (float, default: ``None``) the date used to adjust for magnetic field. If not precised, consider the today date .. cssclass:: fields morse-section 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:* - :tag:`yarp` as yarp::Bottle (:py:mod:`morse.middleware.yarp_datastream.YarpPublisher`) - :tag:`socket` as straight JSON serialization (:py:mod:`morse.middleware.socket_datastream.SocketPublisher`) - :tag:`text` as key = value format with timestamp and index value (:py:mod:`morse.middleware.text_datastream.Publisher`) - :tag:`moos` as StringPublisher (:py:mod:`morse.middleware.moos.abstract_moos.StringPublisher`) .. cssclass:: services morse-section Services for Magnetometer ------------------------- - ``get_properties()`` (blocking) Returns the properties of a component. - Return value a dictionary of the current component's properties - ``get_local_data()`` (blocking) Returns the current data stored in the sensor. - Return value a dictionary of the current sensor's data - ``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 nothing - ``get_configurations()`` (blocking) Returns the configurations of a component (parsed from the properties). - Return value a dictionary of the current component's configurations .. cssclass:: examples morse-section Examples -------- The following examples show how to use this component in a *Builder* script: .. code-block:: python 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(, , ) magnetometer.rotate(, , ) robot.append(magnetometer) # define one or several communication interface, like 'socket' magnetometer.add_interface() env = Environment('empty') .. cssclass:: files morse-section Other sources of examples +++++++++++++++++++++++++ - `Source code <../../_modules/morse/sensors/magnetometer.html>`_ - `Unit-test <../../_modules/base/magnetometer_testing.html>`_ *(This page has been auto-generated from MORSE module morse.sensors.magnetometer.)*