27#include "modules/common_msgs/localization_msgs/localization.pb.h"
28#include "modules/common_msgs/localization_msgs/pose.pb.h"
29#include "modules/common_msgs/perception_msgs/perception_obstacle.pb.h"
30#include "modules/common_msgs/sensor_msgs/sensor_image.pb.h"
31#include "modules/common_msgs/transform_msgs/transform.pb.h"
32#include "modules/dreamview/proto/camera_update.pb.h"
33#include "modules/dreamview_plus/proto/data_handler.pb.h"
48 std::shared_ptr<cyber::Reader<apollo::perception::PerceptionObstacles>>
53 std::unique_ptr<cyber::Timer>
timer_;
54 std::deque<std::shared_ptr<apollo::localization::LocalizationEstimate>>
59 std::vector<apollo::perception::BBox2D>
bbox2ds;
83 const std::string &channel_name =
"",
84 nlohmann::json *subscribe_param =
nullptr)
override;
85 void StopStream(
const std::string& channel_name =
"")
override;
86 void OnTimer(
const std::string& channel_name =
"");
87 void PublishMessage(
const std::string& channel_name =
"")
override;
90 void GetUpdate(std::string *camera_update,
const std::string& channel_name);
95 static constexpr double kImageScale = 0.6;
97 void OnCompressedImage(
98 const std::shared_ptr<apollo::drivers::CompressedImage> &image);
99 void OnImage(
const std::shared_ptr<apollo::drivers::Image> &image,
100 const std::string &channel_name);
102 const std::shared_ptr<apollo::localization::LocalizationEstimate> &loc);
104 const std::shared_ptr<apollo::perception::PerceptionObstacles>& obstacles,
105 const std::string &channel_name);
111 void GetImageLocalization(std::vector<double> *localization,
112 const std::string &channel_name);
115 bool QueryStaticTF(
const std::string &frame_id,
116 const std::string &child_frame_id,
117 Eigen::Matrix4d *matrix);
118 void GetLocalization2CameraTF(std::vector<double> *localization2camera_tf);
119 std::shared_ptr<cyber::Reader<apollo::perception::PerceptionObstacles>>
120 GetObstacleReader(
const std::string &channel_name);
122 const std::string &channel_name);
126 bool perception_obstacle_enable_ =
false;
128 std::unique_ptr<cyber::Node> node_;
129 std::map<std::string, CameraChannelUpdater *> channel_updaters_;
130 std::mutex channel_updater_map_mutex_;
A module that collects camera image and localization (by collecting localization & static transforms)...
void OnTimer(const std::string &channel_name="")
void StartStream(const double &time_interval_ms, const std::string &channel_name="", nlohmann::json *subscribe_param=nullptr) override
Start data flow.
void GetChannelMsg(std::vector< std::string > *channels) override
GetChannelMsg
void GetUpdate(std::string *camera_update)
PerceptionCameraUpdater(WebSocketHandler *websocket)
void PublishMessage(const std::string &channel_name="") override
Publish Message to dreamview frontend.
void StopStream(const std::string &channel_name="") override
Stop data flow.
The WebSocketHandler, built on top of CivetWebSocketHandler, is a websocket handler that handles diff...
std::vector< apollo::perception::BBox2D > bbox2ds
std::shared_ptr< cyber::Reader< apollo::perception::PerceptionObstacles > > perception_obstacle_reader_
CameraUpdate camera_update_
std::vector< uint8_t > image_buffer_
std::string curr_channel_name_
std::shared_ptr< cyber::Reader< drivers::Image > > perception_camera_reader_
std::mutex localization_mutex_
std::string curr_obstacle_channel_name_
CameraChannelUpdater(std::string channel_name)
std::deque< std::shared_ptr< apollo::localization::LocalizationEstimate > > localization_queue_
std::vector< int32_t > obstacle_sub_type
std::unique_ptr< cyber::Timer > timer_
std::mutex obstacle_mutex_
std::vector< int32_t > obstacle_id
double current_image_timestamp_