3#include <gtest/gtest_prod.h>
4#include <tf2_ros/transform_broadcaster.h>
8#include <nav_msgs/msg/odometry.hpp>
9#include <sensor_msgs/msg/imu.hpp>
11#include <visualization_msgs/msg/marker_array.hpp>
17#include "custom_interfaces/msg/cone_array.hpp"
18#include "custom_interfaces/msg/perception_output.hpp"
19#include "custom_interfaces/msg/point2d.hpp"
20#include "custom_interfaces/msg/pose.hpp"
21#include "custom_interfaces/msg/velocities.hpp"
24#include "rclcpp/rclcpp.hpp"
27#include "std_msgs/msg/float64.hpp"
28#include "std_msgs/msg/float64_multi_array.hpp"
39 rclcpp::Subscription<custom_interfaces::msg::PerceptionOutput>::SharedPtr
45 rclcpp::Publisher<visualization_msgs::msg::Marker>::SharedPtr
47 rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr
49 rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr
52 rclcpp::Publisher<std_msgs::msg::Float64MultiArray>::SharedPtr
58 rclcpp::CallbackGroup::SharedPtr
73 std::shared_ptr<std::vector<double>>
Class representing the main SLAM node responsible for publishing the calculated pose and map.
rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr _visualization_map_publisher_
Eigen::VectorXd _map_coordinates_
Coordinates of the cones in the map.
common_lib::structures::Velocities _vehicle_state_velocities_
std::vector< common_lib::structures::Cone > _perception_map_
rclcpp::Subscription< custom_interfaces::msg::PerceptionOutput >::SharedPtr _perception_subscription_
rclcpp::Publisher< std_msgs::msg::Float64 >::SharedPtr _perception_delta_publisher_
std::string _vehicle_frame_id_
Frame id of the vehicle for the transform.
rclcpp::CallbackGroup::SharedPtr _callback_group_
Callback group for subscriptions, used to control if they are concurrent or not.
std::shared_ptr< std::vector< double > > _execution_times_
void _publish_lap_counter()
publishes the lap counter
rclcpp::Subscription< custom_interfaces::msg::Velocities >::SharedPtr _velocities_subscription_
std::string _adapter_name_
flag to start the mission
virtual void finish()=0
Finish the mission.
rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr _trajectory_visualization_publisher_
Publishes full vehicle trajectory.
std::shared_ptr< tf2_ros::TransformBroadcaster > _tf_broadcaster_
rclcpp::Publisher< visualization_msgs::msg::Marker >::SharedPtr _position_visualization_publisher_
Publishes the vehicle position.
void _publish_vehicle_pose()
publishes the localization ('vehicle_pose') to the topic vehicle_pose
common_lib::competition_logic::Mission _mission_
void _velocities_subscription_callback(const custom_interfaces::msg::Velocities &msg)
Callback that updates everytime information is received from velocity estimation node.
rclcpp::Publisher< custom_interfaces::msg::Pose >::SharedPtr _vehicle_pose_publisher_
void _publish_covariance()
publishes the covariance of the state
rclcpp::Time _last_perception_message_time_
Eigen::VectorXd _observations_global_
Global observations of the cones.
Eigen::VectorXi _associations_
rclcpp::CallbackGroup::SharedPtr _parallel_callback_group_
void _publish_associations()
Publishes the visualization of the associations by data association.
rclcpp::Publisher< std_msgs::msg::Float64MultiArray >::SharedPtr _covariance_publisher_
Publishes the covariance of the pose.
void _publish_map()
publishes the map ('track_map') to the topic track_map
void _perception_subscription_callback(const custom_interfaces::msg::PerceptionOutput &msg)
Callback that updates everytime information is received from the perception module.
rclcpp::Publisher< std_msgs::msg::Float64MultiArray >::SharedPtr _execution_time_publisher_
rclcpp::Publisher< std_msgs::msg::Float64 >::SharedPtr _lap_counter_publisher_
common_lib::structures::Pose _vehicle_pose_
rclcpp::Publisher< custom_interfaces::msg::ConeArray >::SharedPtr _map_publisher_
bool _is_mission_finished()
Checks if the mission is finished.
void _imu_subscription_callback(const sensor_msgs::msg::Imu &msg)
Callback that updates everytime information is received from the IMU.
std::vector< common_lib::structures::Cone > _track_map_
std::shared_ptr< SLAMSolver > _slam_solver_
SLAM solver object.
rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr _associations_visualization_publisher_
rclcpp::TimerBase::SharedPtr _timer_
timer
void init()
Initialize functions @description This method is used to initialize things that require the construct...
Parameters for the SLAM node.
Struct for pose representation.