Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions Runtime/Tx/ImuTx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ namespace ProBridgeSenors.Tx
[AddComponentMenu("ProBridge/Tx/sensor_msgs/Imu")]
public class ImuTx : ProBridgeTxStamped<Imu>
{
public Vector3 acceleration { get; private set; }


[Header("Noise Parameters")]
Expand All @@ -24,7 +23,9 @@ public class ImuTx : ProBridgeTxStamped<Imu>
private Vector3 _lastPosition;
private Quaternion _lastRotation;
private Vector3 _velocity;
private Vector3 _angularVelocity;
protected Vector3 _acceleration;
protected Vector3 _angularVelocity;
protected Quaternion _orientation;
private bool _isGlobal;
private Vector3 _gravityDirection;
private float _gravityMagnitude;
Expand All @@ -48,15 +49,16 @@ void FixedUpdate()
_lastPosition = transform.position;
_lastRotation = transform.rotation;

acceleration = (_velocity - _lastVel) / Time.fixedDeltaTime - transform.InverseTransformDirection(_gravityDirection) * _gravityMagnitude;;
_acceleration = (_velocity - _lastVel) / Time.fixedDeltaTime - _gravityDirection * _gravityMagnitude;;

if (!_isGlobal)
{
acceleration = transform.InverseTransformDirection(acceleration);
_acceleration = transform.InverseTransformDirection(_acceleration);
_angularVelocity = transform.InverseTransformDirection(_angularVelocity);
}

_lastVel = _velocity;
_orientation = transform.rotation;
}
protected override ProBridge.ProBridge.Msg GetMsg(TimeSpan ts)
{
Expand All @@ -82,8 +84,8 @@ protected override ProBridge.ProBridge.Msg GetMsg(TimeSpan ts)
}

data.angular_velocity = _angularVelocity.ToRosAngular();
data.linear_acceleration = acceleration.ToRos();
data.orientation = transform.rotation.ToRos();
data.linear_acceleration = _acceleration.ToRos();
data.orientation = _orientation.ToRos();

return base.GetMsg(ts);
}
Expand Down