FP Perception 0.1.2
Loading...
Searching...
No Matches
algorithm_base.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <rclcpp/rclcpp.hpp>
4#include <string>
5#include <fp_perception_base/options.hpp>
8
9namespace fp_perception
10{
11
13{
14public:
15 virtual ~AlgorithmBase() = default;
16
22 virtual void initialize(const rclcpp::Node::SharedPtr& node)
23 {
24 initialize_base(node);
25 }
26
31 virtual void start() = 0;
32
37 virtual void stop() = 0;
38
47 virtual std::string getName() const
48 {
49 return config_.name;
50 }
51
57 void set_vision_driver(const std::shared_ptr<fp_perception::DriverBase>& vision_driver)
58 {
59 vision_driver_ = vision_driver;
60 }
61
67 void set_audio_input_driver(const std::shared_ptr<fp_perception::DriverBase>& audio_driver)
68 {
69 audio_input_driver_ = audio_driver;
70 }
71
77 void set_transcription_driver(const std::shared_ptr<fp_perception::DriverBase>& transcription_driver)
78 {
79 transcription_driver_ = transcription_driver;
80 }
81
87 void set_sentiment_driver(const std::shared_ptr<fp_perception::DriverBase>& sentiment_driver)
88 {
89 sentiment_driver_ = sentiment_driver;
90 }
91
92protected:
98 void initialize_base(const rclcpp::Node::SharedPtr& node)
99 {
100 node_ = node;
101 }
102
106 rclcpp::Node::SharedPtr node_;
107
111 algorithm_options config_;
112
116 std::shared_ptr<fp_perception::DriverBase> vision_driver_;
117
121 std::shared_ptr<fp_perception::DriverBase> audio_input_driver_;
122
126 std::shared_ptr<fp_perception::DriverBase> transcription_driver_;
127
131 std::shared_ptr<fp_perception::DriverBase> sentiment_driver_;
132};
133
134} // namespace fp_perception
Definition algorithm_base.hpp:13
std::shared_ptr< fp_perception::DriverBase > vision_driver_
driver for vision
Definition algorithm_base.hpp:116
virtual std::string getName() const
Get the name of the algorithm.
Definition algorithm_base.hpp:47
void set_transcription_driver(const std::shared_ptr< fp_perception::DriverBase > &transcription_driver)
Set the transcription driver shared pointer.
Definition algorithm_base.hpp:77
rclcpp::Node::SharedPtr node_
ROS node for the driver.
Definition algorithm_base.hpp:106
virtual void initialize(const rclcpp::Node::SharedPtr &node)
Initialize the driver with a ROS node and namespace.
Definition algorithm_base.hpp:22
void set_sentiment_driver(const std::shared_ptr< fp_perception::DriverBase > &sentiment_driver)
Set the sentiment driver shared pointer.
Definition algorithm_base.hpp:87
void set_audio_input_driver(const std::shared_ptr< fp_perception::DriverBase > &audio_driver)
Set the audio input driver shared pointer.
Definition algorithm_base.hpp:67
void set_vision_driver(const std::shared_ptr< fp_perception::DriverBase > &vision_driver)
Set the vision driver shared pointer.
Definition algorithm_base.hpp:57
std::shared_ptr< fp_perception::DriverBase > audio_input_driver_
driver for audio input
Definition algorithm_base.hpp:121
virtual void stop()=0
Stop the algorithm.
algorithm_options config_
algorithm options
Definition algorithm_base.hpp:111
std::shared_ptr< fp_perception::DriverBase > transcription_driver_
driver for transcription
Definition algorithm_base.hpp:126
virtual ~AlgorithmBase()=default
virtual void start()=0
Start the algorithm.
void initialize_base(const rclcpp::Node::SharedPtr &node)
Initializer base driver in place of constructor due to plugin semantics.
Definition algorithm_base.hpp:98
std::shared_ptr< fp_perception::DriverBase > sentiment_driver_
driver for sentiment analysis
Definition algorithm_base.hpp:131
Definition audio_buffer.hpp:16