Hello mitk-users,

I am trying to understand the computation of the tool tip position and
orientation that is done in mitk::InternalTrackingTool::GetPosition()
and mitk::InternalTrackingTool::SetPosition(). Currently these methods have:

void mitk::InternalTrackingTool::GetPosition(mitk::Point3D& position) const
{
    // ...
    vnl_vector<float> pos_vnl =
(m_ToolTipRotation.rotate(m_Position.Get_vnl_vector()))+
m_ToolTip.Get_vnl_vector();
    // ...
}
void mitk::InternalTrackingTool::GetOrientation(mitk::Quaternion&
orientation) const
{
    // ...
    orientation = m_ToolTipRotation * m_Orientation;
    // ...
}

But on paper I show that it should be:

void mitk::MyTrackingTool::GetPosition(mitk::Point3D& position) const
{
    // ...
    // Compute the position of tool tip in the coordinate frame of the
    // tracking device: Rotate the position of the tip into the tracking
    // device coordinate frame then add to the position of the tracking
    // sensor
    vnl_vector<float> pos_vnl = m_Position.Get_vnl_vector() +
m_Orientation.rotate( m_ToolTip.Get_vnl_vector() ) ;
    // ..
}
void mitk::MyTrackingTool::GetOrientation(mitk::Quaternion& orientation)
const
{
    // ...
    // Compute the orientation of the tool tip in the coordinate frame of
    // the tracking device.
    //
    //   * m_Orientation is the orientation of the tracking sensor in the
tracking device coordinate frame
    //   * m_ToolTipRotation is the orientation of the tool tip relative to
the tracking sensor
    orientation =  m_Orientation * m_ToolTipRotation;
    // ...
}

Empirically testing with our tracking device shows that this is correct. Of
course this assumes that the tip position and tip orientation are relative
to the coordinate frame of the tracking device sensor. Is this an incorrect
assumption for the mitk::InternalTrackingTool class?

Thanks,
Taylor
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to