Make triangulation a zero-copy pure function
This commit is contained in:
@@ -66,8 +66,6 @@ public:
|
||||
this->all_poses_set.resize(cam_ids.size(), false);
|
||||
|
||||
// Load 3D models
|
||||
tri_model = std::make_unique<Triangulator>(
|
||||
min_match_score, min_group_size);
|
||||
pose_tracker = std::make_unique<PoseTracker>(
|
||||
max_movement_speed, max_track_distance);
|
||||
|
||||
@@ -120,7 +118,6 @@ private:
|
||||
std::vector<rclcpp::Subscription<std_msgs::msg::String>::SharedPtr> sub_cam_list_;
|
||||
rclcpp::Publisher<rpt_msgs::msg::Poses>::SharedPtr pose_pub_;
|
||||
|
||||
std::unique_ptr<Triangulator> tri_model;
|
||||
std::unique_ptr<PoseTracker> pose_tracker;
|
||||
std::vector<Camera> all_cameras;
|
||||
std::mutex cams_mutex, pose_mutex, model_mutex;
|
||||
@@ -240,8 +237,9 @@ void Rpt3DWrapperNode::call_model()
|
||||
cams_mutex.lock();
|
||||
pose_mutex.lock();
|
||||
PoseBatch2D pose_batch_2d = PoseBatch2D::from_nested(all_poses);
|
||||
auto poses_3d = tri_model->triangulate_poses(
|
||||
pose_batch_2d, all_cameras, roomparams, joint_names).to_nested();
|
||||
auto poses_3d = triangulate_poses(
|
||||
pose_batch_2d, all_cameras, roomparams, joint_names, min_match_score, min_group_size)
|
||||
.to_nested();
|
||||
|
||||
double min_ts = *std::min_element(all_timestamps.begin(), all_timestamps.end());
|
||||
this->all_poses_set = std::vector<bool>(cam_ids.size(), false);
|
||||
|
||||
Reference in New Issue
Block a user