Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
17a7660
feat: added the math and setup of the ESKF, need some changes
Talhanc Feb 9, 2025
dff90b7
feat: added in the IMU msg and DVL msg, pluss ros2 setup
Talhanc Feb 10, 2025
d428dfb
feat: added ES-UKF filter
Talhanc Feb 21, 2025
382b079
feat: added UKF fix injection step
Talhanc Feb 27, 2025
52bdaeb
feat: working ukf filter is added, some issue in the ESUKF
Talhanc Mar 9, 2025
2a3daba
added in some changes to eskf and the ukf algorithm
Talhanc Mar 14, 2025
007c240
added test script
Talhanc Mar 14, 2025
1fb496b
fixed some errors, code runs from eskf_test now
Talhanc Mar 14, 2025
e110152
added changes to ukf
Talhanc Mar 20, 2025
1e02ea2
feat: Added ESKF in cpp using .hpp and .cpp, current implementation u…
Talhanc Mar 28, 2025
1ea9e56
fix: Added correction for the IMU measurements
Talhanc Apr 2, 2025
4cef60d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 3, 2025
9b44fce
refactor: remove python eskf
Talhanc Apr 3, 2025
ab42232
Merge branch 'main' into feeterror-state-kalman-filter
Talhanc Apr 3, 2025
31c3da2
Merge branch 'main' into feeterror-state-kalman-filter
Andeshog Apr 3, 2025
ea29da3
fix: added errorstate and nominalstate variables into the eskf class
Talhanc Apr 5, 2025
f007908
feat: modified imu correction and added in tested imu noise
Talhanc Apr 17, 2025
20280c2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 17, 2025
65e8467
feat: added NIS plots
Talhanc May 8, 2025
dd0f97a
fix: issues in innovation and jacobian of the measurement
Talhanc May 13, 2025
103a057
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2025
124f337
feat: Adding in the TUKF and the UKF
Talhanc May 14, 2025
3da7c44
fix: added tukf and simulation
Talhanc May 18, 2025
025410a
fix:added in some minor fixes
Talhanc May 20, 2025
0475154
added the cpp code
Talhanc May 30, 2025
72d13a2
Merge branch 'main' into eskf-and-tukf-test
Talhanc Oct 5, 2025
334519d
fix: removing tukf and some errors in eskf
Talhanc Oct 5, 2025
7d112b8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 5, 2025
ccc834b
ci: add node test for eskf
Andeshog Oct 7, 2025
b0e115d
Merge branch 'main' into dev/auv-navigation-eskf
Andeshog Oct 7, 2025
916fe46
feat: Added fancy text for starting filter
Talhanc Oct 7, 2025
c6f948e
fix: moved the fancy text variable outside the initiation
Talhanc Oct 7, 2025
80cbd2d
We do a little bit of refactoring
chrstrom Oct 19, 2025
3a1b03c
refactor(eskf): vortex-utils enjoyer
Andeshog Oct 19, 2025
2e78156
merge main
Andeshog Oct 19, 2025
08f9b6d
feat: added the math and setup of the ESKF, need some changes
Talhanc Feb 9, 2025
d5ff3a0
feat: added in the IMU msg and DVL msg, pluss ros2 setup
Talhanc Feb 10, 2025
a40e4e5
feat: added ES-UKF filter
Talhanc Feb 21, 2025
2851c66
feat: added UKF fix injection step
Talhanc Feb 27, 2025
780cede
feat: working ukf filter is added, some issue in the ESUKF
Talhanc Mar 9, 2025
95573c7
added in some changes to eskf and the ukf algorithm
Talhanc Mar 14, 2025
bbb3dd6
added test script
Talhanc Mar 14, 2025
8c6ab5b
fixed some errors, code runs from eskf_test now
Talhanc Mar 14, 2025
d131c8c
added changes to ukf
Talhanc Mar 20, 2025
006d146
feat: Added ESKF in cpp using .hpp and .cpp, current implementation u…
Talhanc Mar 28, 2025
05f3dbd
fix: Added correction for the IMU measurements
Talhanc Apr 2, 2025
6893a15
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 3, 2025
dfa687c
refactor: remove python eskf
Talhanc Apr 3, 2025
fdf7263
fix: added errorstate and nominalstate variables into the eskf class
Talhanc Apr 5, 2025
a78e9fa
feat: modified imu correction and added in tested imu noise
Talhanc Apr 17, 2025
7319110
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 17, 2025
cef3532
feat: added NIS plots
Talhanc May 8, 2025
73cc153
fix: issues in innovation and jacobian of the measurement
Talhanc May 13, 2025
e2b13a5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 13, 2025
75feb13
feat: Adding in the TUKF and the UKF
Talhanc May 14, 2025
7e229be
fix: added tukf and simulation
Talhanc May 18, 2025
c51b9a3
fix:added in some minor fixes
Talhanc May 20, 2025
1d65dcc
added the cpp code
Talhanc May 30, 2025
b2570d6
fix: removing tukf and some errors in eskf
Talhanc Oct 5, 2025
835146c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 5, 2025
733cc90
ci: add node test for eskf
Andeshog Oct 7, 2025
e5332c5
feat: Added fancy text for starting filter
Talhanc Oct 7, 2025
d964d23
fix: moved the fancy text variable outside the initiation
Talhanc Oct 7, 2025
6d0f000
Fixed some of the suggested comments, add debug flag
AhmedBorch Oct 15, 2025
e4be55e
updating the published topic name
AhmedBorch Oct 19, 2025
b4b04fe
implemented the sensor concept requirement, added eskf.tpp so that I …
AhmedBorch Oct 19, 2025
ea4fbaa
removed gravity from the state vector and put it seperately for effic…
AhmedBorch Oct 26, 2025
0f231c1
added code for errors and for covariance publishing
AhmedBorch Nov 5, 2025
02c87c3
added the modifications from Talha's branch /dev/auv-navigation-eskf …
AhmedBorch Nov 9, 2025
d87003b
removed unused variable and old comment
AhmedBorch Nov 9, 2025
8cf1048
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 9, 2025
ffa2e49
Merge branch 'main' into dev/eskf_fuse_depth
AhmedBorch Jan 5, 2026
3048852
clang-format fix
AhmedBorch Jan 5, 2026
d40d40b
ament_cpplint fixes
AhmedBorch Jan 5, 2026
b2a7ca3
Merge branch 'main' into dev/eskf_fuse_depth
AhmedBorch Jan 5, 2026
f2c9d2a
missing dependency
AhmedBorch Jan 5, 2026
fbf0558
updating yaml, P(cov) is 15*15 now
AhmedBorch Jan 5, 2026
5975165
update for the separate vortex_utils
AhmedBorch Jan 5, 2026
52b2a06
eskf: added VO-relative anchoring, cleaned duplicate typedef matrices…
AntTra Jan 9, 2026
af62692
refactor: split valve code into logic and ROS. Turned off the DVL in …
AntTra Jan 14, 2026
e690eec
Merge branch 'feature/eskf-landmark-valve' of https://github.com/vort…
AntTra Jan 15, 2026
7cd32d3
set threshold for VO rejection dependent on nis
AntTra Jan 15, 2026
ddf1e0a
puting the covariance in the odom msg. Fixing the orientation for IMU…
AhmedBorch Jan 16, 2026
cbb1366
clnag-format fix
AhmedBorch Jan 16, 2026
454bd16
feat: handles multiple unique marker IDs in a single frame
AntTra Jan 20, 2026
826ab51
updated to use vortex_utils_ros
AntTra Jan 21, 2026
6186989
refactor: renamed from valve to visual egomotion, VO using parameters…
AntTra Feb 2, 2026
6535f82
modified smart anchoring to deterministicly pick lowest id
AntTra Feb 3, 2026
7e77a46
refactor: deleted anchor_id_
AntTra Feb 3, 2026
e7715cd
removed mad, renamed some variables in visual egomotion
AntTra Feb 5, 2026
66cafdb
Merge branch 'main' into dev/eskf_fuse_depth
AhmedBorch Feb 5, 2026
363b855
code for debugging+NEES/RMSE test file + fix for odom ang vel output
AhmedBorch Feb 6, 2026
a4619d6
removed now redundant VO debugging
AntTra Feb 7, 2026
fc3738f
removed residual definitions from pose cov innov debug
AntTra Feb 7, 2026
5678dfa
incomplete refactor: switching to desktop
AntTra Feb 10, 2026
3e0c3a4
Merge branch 'main' into feature/eskf-landmark-valve
AntTra Feb 10, 2026
ce403fa
removing debugging topics, fixing the initial orientation, and the ro…
AhmedBorch Feb 10, 2026
a7282ea
refactor: removed visual_egomotion package, typedefs added VoConfig s…
AntTra Feb 11, 2026
2710fc6
reactivated dvl, dropout_timeout_sec to dropout_timeout as its self e…
AntTra Feb 11, 2026
65ce9e8
edited params, added comments in eskf
AntTra Feb 11, 2026
c537667
chore: removed subprojects
AntTra Feb 11, 2026
993b61c
deleted chat comment in cmakelist
AntTra Feb 11, 2026
67d0f8b
merge completed with dev/eskf-fuse-depth, refactor: split landmark_eg…
AntTra Feb 15, 2026
4c26e61
deleted empty landmark launch node
AntTra Feb 15, 2026
3bd7b09
fixed rotationclass acronym
AntTra Feb 15, 2026
73c744d
removed lib/ in .gitignore and retracked ignored files. fix build/hea…
AntTra Feb 15, 2026
1c8d016
removed ifdef guards
AntTra Feb 15, 2026
906897d
added vo params in eskf
vortexuser Feb 15, 2026
13c2fdc
newline in eskf_params, space in comment
AntTra Feb 15, 2026
3ea8ae2
fix: resolved eskf/landmark_egomotion build dependency. Added BOOTSTR…
AntTra Mar 2, 2026
9dbf58e
Merge remote-tracking branch 'origin' into feature/eskf-landmark-valve
kluge7 Mar 2, 2026
11952d1
Merge branch 'dev/eskf_fuse_depth' into feature/eskf-landmark-valve
kluge7 Mar 2, 2026
84b7709
modified tests/setup.sh
AntTra Mar 2, 2026
91ec174
fix: update landmark message to new vortex_msgs structure
AntTra Mar 2, 2026
024dc22
merged with dev/eskf_fuse_depth
AntTra Mar 16, 2026
6af0de2
consistent gain in vel. ]\marker selection based on closest marker in…
AntTra Mar 17, 2026
fe8c8e2
removed dead landmark yaml, removed vel_alpha, added VO reject and an…
AntTra Mar 18, 2026
aba7a85
changing params use based on latest changes in simulation and auv_setup
AntTra Mar 19, 2026
9691490
Merge branch 'main' into feature/eskf-landmark-valve
AntTra Mar 23, 2026
dc82fb7
merged landmark egomotion into eskf package. LandmarkESKF now inherit…
AntTra Mar 23, 2026
5ffae62
removed redundant eskf rebuild in setup.sh
AntTra Mar 29, 2026
7ab3439
Merge branch 'dev/eskf_fuse_depth' into feature/eskf-landmark-valve
AntTra Mar 29, 2026
6ac90dd
fixed worldned, added logs for polling, added extra guard that helps …
CurryMonsters Apr 2, 2026
0c24b41
changed back from orca to nauti
CurryMonsters Apr 2, 2026
8a0f2e8
Merge pull request #705 from vortexntnu/fix/landmark-server
CurryMonsters Apr 3, 2026
963afcf
Merge branch 'dev/eskf_fuse_depth' into feature/eskf-landmark-valve
AntTra Apr 4, 2026
96a2d96
Merge branch 'main' into feature/eskf-landmark-valve
AntTra Apr 4, 2026
bbb983c
merged from main and dev/eskf_fuse_depth
AntTra Apr 4, 2026
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
3 changes: 1 addition & 2 deletions mission/landmark_server/config/landmark_server_config.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
/**:
ros__parameters:
target_frame: "odom"
target_frame: "orca/odom"
timer_rate_ms: 200
enu_ned_rotation: true

track_config:
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,6 @@ class LandmarkServerNode : public rclcpp::Node {
std::shared_ptr<tf2_ros::Buffer> tf2_buffer_;
std::shared_ptr<tf2_ros::TransformListener> tf2_listener_;

bool enu_ned_rotation_{false};

std::shared_ptr<LandmarkPollingGoalHandle> active_landmark_polling_goal_;
std::shared_ptr<LandmarkConvergenceGoalHandle>
active_landmark_convergence_goal_;
Expand Down
29 changes: 8 additions & 21 deletions mission/landmark_server/src/landmark_server_convergence.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <spdlog/spdlog.h>
#include <rclcpp_action/client.hpp>
#include <vortex/utils/ros/ros_conversions.hpp>
#include <vortex/utils/waypoint_utils.hpp>
#include <vortex_msgs/msg/waypoint.hpp>
#include <vortex_msgs/msg/waypoint_mode.hpp>
#include "landmark_server/landmark_server_ros.hpp"
Expand Down Expand Up @@ -464,27 +465,13 @@ geometry_msgs::msg::Pose LandmarkServerNode::compute_target_pose(
const vortex::filtering::Track& track,
const geometry_msgs::msg::Pose& convergence_offset) {
const auto landmark_pose = track.to_pose();

const Eigen::Vector3d p_landmark = landmark_pose.pos_vector();
const Eigen::Quaterniond q_landmark =
landmark_pose.ori_quaternion().normalized();

const Eigen::Vector3d p_offset(convergence_offset.position.x,
convergence_offset.position.y,
convergence_offset.position.z);

const Eigen::Quaterniond q_offset =
Eigen::Quaterniond(
convergence_offset.orientation.w, convergence_offset.orientation.x,
convergence_offset.orientation.y, convergence_offset.orientation.z)
.normalized();

const Eigen::Vector3d p_target = p_landmark + p_offset;

const Eigen::Quaterniond q_target = (q_landmark * q_offset).normalized();

return vortex::utils::ros_conversions::eigen_to_pose_msg(p_target,
q_target);
const auto base = vortex::utils::types::Pose::from_eigen(
landmark_pose.pos_vector(), landmark_pose.ori_quaternion());
const auto offset =
vortex::utils::ros_conversions::ros_pose_to_pose(convergence_offset);
const auto target =
vortex::utils::waypoints::apply_pose_offset(base, offset);
return vortex::utils::ros_conversions::to_pose_msg(target);
}

} // namespace vortex::mission
19 changes: 12 additions & 7 deletions mission/landmark_server/src/landmark_server_ros.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ void LandmarkServerNode::create_reference_publisher() {
void LandmarkServerNode::create_pose_subscription() {
std::string landmark_topic =
this->declare_parameter<std::string>("topics.landmarks");
enu_ned_rotation_ = this->declare_parameter<bool>("enu_ned_rotation");
target_frame_ = this->declare_parameter<std::string>("target_frame");
auto qos_sensor_profile =
vortex::utils::qos_profiles::sensor_data_profile(1);
Expand Down Expand Up @@ -98,12 +97,6 @@ void LandmarkServerNode::create_pose_subscription() {
}

auto new_measurements = ros_msg_to_landmarks(pose_tf);
if (enu_ned_rotation_) {
std::ranges::for_each(new_measurements, [](auto& m) {
m.pose.set_ori(vortex::utils::math::enu_ned_rotation(
m.pose.ori_quaternion()));
});
}
{
std::lock_guard<std::mutex> lock(measurements_mtx_);
measurements_ = std::move(new_measurements);
Expand Down Expand Up @@ -273,6 +266,15 @@ void LandmarkServerNode::timer_callback() {

convergence_update();

if (active_landmark_polling_goal_ &&
active_landmark_polling_goal_->is_canceling()) {
auto result =
std::make_shared<vortex_msgs::action::LandmarkPolling_Result>();
active_landmark_polling_goal_->canceled(result);
active_landmark_polling_goal_ = nullptr;
return;
}

if (active_landmark_polling_goal_ &&
active_landmark_polling_goal_->is_active()) {
const auto goal = active_landmark_polling_goal_->get_goal();
Expand All @@ -294,6 +296,9 @@ void LandmarkServerNode::timer_callback() {
if (!found) {
return;
}
spdlog::info(
"LandmarkPolling: found landmark(s) for type={}, subtype={}", type,
subtype);
vortex_msgs::msg::LandmarkArray landmarks =
tracks_to_landmark_msgs(type, subtype);
auto polling_result =
Expand Down
62 changes: 50 additions & 12 deletions navigation/eskf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,39 +36,65 @@ include_directories(${EIGEN3_INCLUDE_DIR})

include_directories(include)

set(LIB_NAME "${PROJECT_NAME}_component")
set(CORE_LIB_NAME "${PROJECT_NAME}")

add_library(${LIB_NAME} SHARED
src/eskf.cpp
src/eskf_ros.cpp
add_library(${CORE_LIB_NAME} SHARED
src/lib/eskf.cpp
)

ament_target_dependencies(${LIB_NAME} PUBLIC
target_include_directories(${CORE_LIB_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)

ament_target_dependencies(${CORE_LIB_NAME}
Eigen3
vortex_utils
)

add_library(${PROJECT_NAME}::${CORE_LIB_NAME} ALIAS ${CORE_LIB_NAME})

set(COMPONENT_LIB_NAME "${PROJECT_NAME}_component")

set(LANDMARK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../landmark_egomotion")

add_library(${COMPONENT_LIB_NAME} SHARED
src/ros/eskf_ros.cpp
${LANDMARK_DIR}/src/lib/landmark_egomotion.cpp
)

target_include_directories(${COMPONENT_LIB_NAME} PRIVATE
${LANDMARK_DIR}/include
)

ament_target_dependencies(${COMPONENT_LIB_NAME}
rclcpp
rclcpp_components
Eigen3
geometry_msgs
nav_msgs
Eigen3
tf2
tf2_ros
tf2_eigen
vortex_msgs
vortex_utils
vortex_utils_ros
spdlog
fmt
tf2_ros
tf2_eigen
)

target_link_libraries(${COMPONENT_LIB_NAME} ${PROJECT_NAME})

rclcpp_components_register_node(
${LIB_NAME}
${COMPONENT_LIB_NAME}
PLUGIN "ESKFNode"
EXECUTABLE ${PROJECT_NAME}_node
)

ament_export_targets(export_${LIB_NAME})
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)

install(TARGETS ${LIB_NAME}
EXPORT export_${LIB_NAME}
install(TARGETS ${CORE_LIB_NAME} ${COMPONENT_LIB_NAME}
EXPORT export_${PROJECT_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
Expand All @@ -79,10 +105,22 @@ install(
DESTINATION include
)

install(
DIRECTORY ${LANDMARK_DIR}/include/
DESTINATION include
)

install(DIRECTORY
launch
config
DESTINATION share/${PROJECT_NAME}/
)

ament_export_dependencies(
Eigen3
vortex_utils
)
ament_export_include_directories(include)
ament_export_libraries(${CORE_LIB_NAME})

ament_package()
28 changes: 28 additions & 0 deletions navigation/eskf/config/eskf_params.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/**:
eskf_node:
ros__parameters:
dvl_topic: /dvl/sim
odom_topic: odom_ESKF
diag_Q_std: [0.05, 0.05, 0.1, 0.01, 0.01, 0.02, 0.001, 0.001, 0.001, 0.0001, 0.0001, 0.0001]
diag_p_init: [1.0, 1.0, 1.0, 0.5, 0.5, 0.5, 0.1, 0.1, 0.1, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001]
transform:
Expand Down Expand Up @@ -30,3 +32,29 @@
atmospheric_pressure: 101000.0 # [Pa]
water_density: 1026.0 # [kg/m3]
gravity: 9.82841

use_landmark_egomotion: true
vo:
landmarks_topic: /aruco_detector/landmarks

base_frame: orca/base_link
camera_frame: orca/front_camera_optical

nis_gate_pose: 16.812
nis_gate_velocity: 11.345
disable_gating: true
dropout_timeout: 10.0
rejects_limit: 5

pos_floor: 0.05
att_floor: 0.02
vel_floor: 0.2
dt_min: 0.02
dt_max: 15.0

# Sliding-window smoother
use_sw: true
window_size: 20
max_age: 15.0
huber_deg: 20.0
gate_deg: 60.0
26 changes: 26 additions & 0 deletions navigation/eskf/config/eskf_params_real_world.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,32 @@
water_density: 1026.0 # [kg/m3]
gravity: 9.82841

use_landmark_egomotion: true
vo:
landmarks_topic: /aruco_detector/landmarks

base_frame: nautilus/base_link
camera_frame: "/cam/camera_info"

nis_gate_pose: 16.812
nis_gate_velocity: 11.345
disable_gating: true
dropout_timeout: 10.0
rejects_limit: 5

pos_floor: 0.1
att_floor: 0.05
vel_floor: 0.4
dt_min: 0.02
dt_max: 15.0

# Sliding-window smoother
use_sw: true
window_size: 20
max_age: 15.0
huber_deg: 20.0
gate_deg: 60.0

# USED SENSORS
# IMU: Kongsberg mini MRU
# DVL & Depth: Nucleus 1000
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
#ifndef ESKF__ESKF_HPP_
#define ESKF__ESKF_HPP_
#ifndef ESKF__LIB__ESKF_HPP_
#define ESKF__LIB__ESKF_HPP_

#include <eigen3/Eigen/Dense>
#include <utility>
#include "eskf/typedefs.hpp"
#include "eskf/lib/typedefs.hpp"
#include "typedefs.hpp"

class ESKF {
public:
explicit ESKF(const EskfParams& params);
virtual ~ESKF() = default;

// @brief Update the nominal state and error state
// @param imu_meas: IMU measurement
Expand All @@ -29,6 +30,16 @@ class ESKF {

inline Eigen::Vector3d get_gravity() const { return g_; }

protected:
// @brief Inject the error state into the nominal state and reset the error
void injection_and_reset();

// Member variable for the current error state
StateEuler current_error_state_{};

// Member variable for the current nominal state
StateQuat current_nom_state_{};

private:
// @brief Predict the nominal state
// @param imu_meas: IMU measurement
Expand Down Expand Up @@ -56,9 +67,6 @@ class ESKF {
template <SensorModelConcept SensorT>
void measurement_update(const SensorT& meas);

// @brief Inject the error state into the nominal state and reset the error
void injection_and_reset();

// @brief Van Loan discretization
// @param A_c: Continuous state transition matrix
// @param G_c: Continuous input matrix
Expand All @@ -74,12 +82,6 @@ class ESKF {
// Normalized Innovation Squared
double nis_{};

// Member variable for the current error state
StateEuler current_error_state_{};

// Member variable for the current nominal state
StateQuat current_nom_state_{};

// gravity
Eigen::Vector3d g_{0.0, 0.0, -9.82841};

Expand Down Expand Up @@ -107,4 +109,4 @@ double compute_nis(const Eigen::VectorXd& innovation, const Eigen::MatrixXd& S);

#include "eskf.tpp" // including template implementation

#endif // ESKF__ESKF_HPP_
#endif // ESKF__LIB__ESKF_HPP_
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* @file typedefs.hpp
* @brief Contains the typedef and structs for the eskf.
*/
#ifndef ESKF__TYPEDEFS_HPP_
#define ESKF__TYPEDEFS_HPP_
#ifndef ESKF__LIB__TYPEDEFS_HPP_
#define ESKF__LIB__TYPEDEFS_HPP_

#include <concepts>
#include <eigen3/Eigen/Dense>
Expand Down Expand Up @@ -135,4 +135,4 @@ struct SensorDepth {
Eigen::MatrixXd noise_covariance() const;
};

#endif // ESKF__TYPEDEFS_HPP_
#endif // ESKF__LIB__TYPEDEFS_HPP_
Loading
Loading