Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
ins_ext_pose module

Extened Kalman filter based on https://en.wikipedia.org/wiki/Extended_Kalman_filter

Designed to merge only IMU and OptiTrack/VICON (no baro, sonar, GPS, ...)

  • predict attitude and path with gyroscopes and accelerometers
  • correct attitude and path with external pose and position message
  • estimate gyro and accelerometer biases

Bypassed when simulating.

Example for airframe file

Add to your firmware section:

<module name="ins_ext_pose"/>

Module functions

Init Functions

These initialization functions are called once on startup.

Periodic Functions

These functions are called periodically at the specified frequency from the module periodic loop.

  • ins_ext_pose_run()
    • Running at maximum module frequency.
    • Autorun: LOCK
      Periodic function automatically starts after init and can't be stopped.

Datalink Functions

Whenever the specified datalink message is received, the corresponing handler function is called.

  • on message EXTERNAL_POSE call ins_ext_pose_msg_update(buf)

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw ins_ext_pose.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="ins_ext_pose" dir="ins">
<doc>
<description>
Extened Kalman filter based on https://en.wikipedia.org/wiki/Extended_Kalman_filter
Designed to merge only IMU and OptiTrack/VICON (no baro, sonar, GPS, ...)
- predict attitude and path with gyroscopes and accelerometers
- correct attitude and path with external pose and position message
- estimate gyro and accelerometer biases
Bypassed when simulating.
</description>
</doc>
<dep>
<depends>@gps,@datalink,@imu</depends>
<provides>ahrs,ins</provides>
</dep>
<header>
<file name="ins_ext_pose.h"/>
</header>
<init fun="ins_ext_pose_init()"/>
<periodic fun="ins_ext_pose_run()"/>
<datalink message="EXTERNAL_POSE" fun="ins_ext_pose_msg_update(buf)"/>
<makefile target="ap">
<define name="INS_TYPE_H" value="modules/ins/ins_ext_pose.h" type="string"/>
<define name="INS_EXT_POSE" value="TRUE"/>
<file name="ins_ext_pose.c"/>
<file name="ins.c"/>
</makefile>
</module>