Class BaseNode

Inheritance Relationships

Derived Type

Class Documentation

class BaseNode

Subclassed by rko_lio::ros::ThreadedNode

Public Functions

BaseNode() = delete
BaseNode(const std::string &node_name, const rclcpp::NodeOptions &options)
void parse_cli_extrinsics()
bool check_and_set_extrinsics()
bool ensure_frame_and_extrinsics(std::string &target_frame, const std::string &msg_frame, std::string_view kind)
LidarScan process_lidar_msg(const sensor_msgs::msg::PointCloud2::ConstSharedPtr &lidar_msg) const
core::Vector3sVector register_scan_locked(core::Vector3sVector scan, const core::Timestamps &timestamps)
void publish_lidar_outputs(const core::Vector3sVector &deskewed_scan) const
void publish_odometry(const core::State &state, const rclcpp::Publisher<nav_msgs::msg::Odometry>::SharedPtr &publisher) const
void publish_tf(const core::State &state) const
void publish_lidar_accel(const core::State &state) const
void publish_map_loop()
void dump_results_to_disk(const std::filesystem::path &results_dir, const std::string &run_name) const
void reset_odometry()
~BaseNode()
BaseNode(const BaseNode&) = delete
BaseNode(BaseNode&&) = delete
BaseNode &operator=(const BaseNode&) = delete
BaseNode &operator=(BaseNode&&) = delete

Public Members

Sophus::SE3s extrinsic_imu2base
Sophus::SE3s extrinsic_lidar2base
std::unique_ptr<core::LIO> lio
std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster
core::Nsec publish_map_after = std::chrono::seconds(1)
rclcpp::Node::SharedPtr node
core::TimestampProcessingConfig timestamp_proc_config
std::shared_ptr<tf2_ros::TransformListener> tf_listener
std::shared_ptr<tf2_ros::Buffer> tf_buffer
rclcpp::Publisher<nav_msgs::msg::Odometry>::SharedPtr odom_publisher
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr frame_publisher
rclcpp::Publisher<sensor_msgs::msg::PointCloud2>::SharedPtr map_publisher
rclcpp::Publisher<geometry_msgs::msg::AccelStamped>::SharedPtr lidar_accel_publisher
rclcpp::Publisher<std_msgs::msg::UInt32>::SharedPtr reset_count_publisher
std::string imu_topic
std::string imu_frame
std::string lidar_topic
std::string lidar_frame
std::string base_frame
std::string odom_frame = "odom"
std::string odom_topic = "rko_lio/odom"
std::string map_topic = "rko_lio/local_map"
std::string deskewed_scan_topic = "rko_lio/deskewed_scan"
std::string results_dir = "results"
std::string run_name = "rko_lio_run"
std::mutex local_map_mutex
bool dump_results = false
bool invert_odom_tf = false
bool publish_lidar_acceleration = false
bool publish_deskewed_scan = false
bool publish_local_map = false
bool extrinsics_set = false
bool reset_on_registration_error = false
std::atomic<bool> atomic_node_running = true
rclcpp::OnShutdownCallbackHandle shutdown_handle
std::jthread map_publish_thread