Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
factor_data_structures.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <Eigen/Dense>
4#include <memory>
5#include <rclcpp/rclcpp.hpp>
6
10enum class MotionInputType {
13};
14
19struct MotionData {
20 std::shared_ptr<Eigen::VectorXd> motion_data_;
21 std::shared_ptr<Eigen::VectorXd> motion_data_noise_;
22 rclcpp::Time timestamp_;
24
25 MotionData() = default;
26 MotionData(std::shared_ptr<Eigen::VectorXd> motion_data,
27 std::shared_ptr<Eigen::VectorXd> motion_data_noise, rclcpp::Time timestamp,
29 : motion_data_(motion_data),
30 motion_data_noise_(motion_data_noise),
31 timestamp_(timestamp),
32 type_(type) {}
33};
34
40struct ObservationData {
41 std::shared_ptr<Eigen::VectorXd> observations_;
42 std::shared_ptr<Eigen::VectorXi> associations_;
43 std::shared_ptr<Eigen::VectorXd> observations_global_;
44 std::shared_ptr<Eigen::VectorXd> observations_confidences_;
45 rclcpp::Time timestamp_;
46
47 ObservationData() = default;
48 ObservationData(std::shared_ptr<Eigen::VectorXd> observations,
49 std::shared_ptr<Eigen::VectorXi> associations,
50 std::shared_ptr<Eigen::VectorXd> observations_global,
51 std::shared_ptr<Eigen::VectorXd> observations_confidences, rclcpp::Time timestamp)
52 : observations_(observations),
53 associations_(associations),
54 observations_global_(observations_global),
55 observations_confidences_(observations_confidences),
56 timestamp_(timestamp) {}
57};
MotionInputType
Enum to define the type of motion input.
@ ODOMETRY
Pose difference from odometry.
@ VELOCITIES
Vehicle velocities.
Data structure to hold motion data.
MotionInputType type_
Type of motion input.
rclcpp::Time timestamp_
MotionData(std::shared_ptr< Eigen::VectorXd > motion_data, std::shared_ptr< Eigen::VectorXd > motion_data_noise, rclcpp::Time timestamp, MotionInputType type=MotionInputType::VELOCITIES)
std::shared_ptr< Eigen::VectorXd > motion_data_
MotionData()=default
std::shared_ptr< Eigen::VectorXd > motion_data_noise_
Struct containing observation data.
std::shared_ptr< Eigen::VectorXi > associations_
std::shared_ptr< Eigen::VectorXd > observations_
ObservationData(std::shared_ptr< Eigen::VectorXd > observations, std::shared_ptr< Eigen::VectorXi > associations, std::shared_ptr< Eigen::VectorXd > observations_global, std::shared_ptr< Eigen::VectorXd > observations_confidences, rclcpp::Time timestamp)
std::shared_ptr< Eigen::VectorXd > observations_confidences_
std::shared_ptr< Eigen::VectorXd > observations_global_
ObservationData()=default