My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
ImuPose3Fuser.h
Go to the documentation of this file.
1/*
2Copyright 2024 by Julian Nubert, Robotic Systems Lab, ETH Zurich.
3All rights reserved.
4This file is released under the "BSD-3-Clause License".
5Please see the LICENSE file that has been included as part of this package.
6 */
7
8#ifndef Smb_Estimator_H
9#define Smb_Estimator_H
10
11// std
12#include <chrono>
13
14// ROS
15#include <nav_msgs/Odometry.h>
16#include <nav_msgs/Path.h>
17#include <sensor_msgs/Imu.h>
18#include <tf/transform_listener.h>
19
20// Workspace
22
23// Defined Macros
24#define ROS_QUEUE_SIZE 100
25#define NUM_GNSS_CALLBACKS_UNTIL_START 20 // 0
26
27namespace imu_pose3_fuser {
28
30 public:
31 ImuPose3Fuser(std::shared_ptr<ros::NodeHandle> privateNodePtr);
32 // Destructor
33 ~ImuPose3Fuser() = default;
34 // Setup
35 void setup();
36
37 protected:
38 // Virtual Functions
39 void initializePublishers(ros::NodeHandle& privateNode) override;
40 void initializeSubscribers(ros::NodeHandle& privateNode) override;
41 void initializeMessages(ros::NodeHandle& privateNode) override;
42 void initializeServices(ros::NodeHandle& privateNode) override;
43 void readParams(const ros::NodeHandle& privateNode) override;
44
45 private:
46 // Time
47 std::chrono::time_point<std::chrono::high_resolution_clock> startTime_;
48 std::chrono::time_point<std::chrono::high_resolution_clock> currentTime_;
49
50 // Config -------------------------------------
51
52 // Rates
53 double pose3OdometryRate_ = 5.0;
54
55 // Noise
56 Eigen::Matrix<double, 6, 1> pose3UnaryNoise_;
57
58 // ROS Related stuff ----------------------------
59
60 // Callbacks
61 void pose3Callback_(const nav_msgs::Odometry::ConstPtr& lidarOdomPtr);
62
63 // Subscribers
64 // Instances
65 ros::Subscriber subPose3Odometry_;
66
67 // Publishers
68 // Path
69 ros::Publisher pubMeasPose3Path_;
70
71 // Messages
72 nav_msgs::PathPtr measPose3_worldImuPathPtr_;
73
74 // Frame
75 std::string unaryPose3Frame_;
76};
77} // namespace imu_pose3_fuser
78#endif // end Smb_Estimator_H
nav_msgs::PathPtr measPose3_worldImuPathPtr_
std::chrono::time_point< std::chrono::high_resolution_clock > currentTime_
std::chrono::time_point< std::chrono::high_resolution_clock > startTime_
void initializeServices(ros::NodeHandle &privateNode) override
void readParams(const ros::NodeHandle &privateNode) override
void pose3Callback_(const nav_msgs::Odometry::ConstPtr &lidarOdomPtr)
ImuPose3Fuser(std::shared_ptr< ros::NodeHandle > privateNodePtr)
void initializePublishers(ros::NodeHandle &privateNode) override
Eigen::Matrix< double, 6, 1 > pose3UnaryNoise_
void initializeSubscribers(ros::NodeHandle &privateNode) override
void initializeMessages(ros::NodeHandle &privateNode) override