Attitude sensor =============== This sensor is an high-level sensor, returning the attitude of the sensor (i.e. angles and angular velocities). It can be seen as the integration of an IMU, or a couple gyroscope/gyrometer. If the robot has a physics controller, the velocities are directly read from its property ``localAngularVelocity``. Otherwise the velocities are calculated by simple differentiation. The measurements are given in the sensor coordinate system. .. cssclass:: properties morse-section Configuration parameters for Attitude sensor -------------------------------------------- You can set these properties in your scripts with ``.properties(=..., =...)``. - ``UseAngleAgainstNorth`` (bool, default: ``False``) If set to true, return the absolute yaw against North. The whole geodetic coordinates (longitude, latitude, altitude, angle_against_north) must be configured. Otherwise, return the yaw against the Blender coordinates - ``ComputationMode`` (string, default: ``"Automatic"``) Kind of computation, can be one of ['Velocity', 'Position']. Only robot with dynamic and Velocity control can choose Velocity computation. Default choice is Velocity for robot with physics, and Position for others .. 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 - ``rotation`` (Euler angles (XYZ), initial value: ``[0.0, 0.0, 0.0]``) rotation of the sensor, in radian - ``angular_velocity`` (vec3, initial value: ``[0.0, 0.0, 0.0]``) rates in the sensors axis x, y, z axes (in radian . sec ^ -1) *Interface support:* - :tag:`mavlink` as `ATTITUDE `_ (:py:mod:`morse.middleware.mavlink.attitude.AttitudeSensor`) - :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 Attitude sensor ---------------------------- - ``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 attitude = Attitude() # place your component at the correct location attitude.translate(, , ) attitude.rotate(, , ) robot.append(attitude) # define one or several communication interface, like 'socket' attitude.add_interface() env = Environment('empty') .. cssclass:: files morse-section Other sources of examples +++++++++++++++++++++++++ - `Source code <../../_modules/morse/sensors/attitude.html>`_ - `Unit-test <../../_modules/base/attitude_testing.html>`_ *(This page has been auto-generated from MORSE module morse.sensors.attitude.)*