This sensor emulates an Inertial Measurement Unit (IMU), measuring the angular velocity and linear acceleration including acceleration due to gravity.
If the robot has a physics controller, the velocities are directly read from it’s properties localAngularVelocity and worldLinearVelocity. Otherwise the velocities are calculated by simple differentiation. Linear acceleration is always computed by differentiation of the linear velocity. The measurements are given in the IMU coordinate system, so the location and rotation of the IMU with respect to the robot is taken into account.
No configurable parameter.
This sensor exports these datafields at each simulation step:
number of milliseconds in simulated time
rates in IMU x, y, z axes (in radian . sec ^ -1)
acceleration in IMU x, y, z axes (in m . sec ^ -2)
Interface support:
Returns the current data stored in the sensor.
Return value
a dictionary of the current sensor’s data
Returns the properties of a component.
Return value
a dictionary of the current component’s properties
Returns the configurations of a component (parsed from the properties).
Return value
a dictionary of the current component’s configurations
The following examples show how to use this component in a Builder script:
from morse.builder import *
robot = ATRV()
# creates a new instance of the sensor
imu = IMU()
# place your component at the correct location
imu.translate(<x>, <y>, <z>)
imu.rotate(<rx>, <ry>, <rz>)
robot.append(imu)
# define one or several communication interface, like 'socket'
imu.add_interface(<interface>)
env = Environment('empty')
(This page has been auto-generated from MORSE module morse.sensors.imu.)