From e072d03aff366b64a2c699e9df22cca745b775b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu>
Date: Tue, 18 Jan 2022 20:15:24 +0100
Subject: [PATCH] fixing rare clashes

---
 src/publisher_graph.cpp | 8 ++++++--
 src/publisher_pose.cpp  | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/publisher_graph.cpp b/src/publisher_graph.cpp
index 2eeb823..2c9373f 100644
--- a/src/publisher_graph.cpp
+++ b/src/publisher_graph.cpp
@@ -316,12 +316,12 @@ void PublisherGraph::publishFactors()
     // Iterate over the list of factors
     for (auto fac : fac_list)
     {
-        std::string fac_str = factorString(fac);
-
         // Try to fill marker
         if (not fillFactorMarker(fac, factor_marker, factor_text_marker))
             continue;
 
+        std::string fac_str = factorString(fac);
+
         // markers id
         factor_marker.id = fac->id();
         factor_text_marker.id = fac->id();
@@ -740,6 +740,10 @@ bool PublisherGraph::fillFrameMarker(FrameBaseConstPtr frm,
 std::string PublisherGraph::factorString(FactorBaseConstPtr fac) const
 {
     std::string factor_string;
+
+    if (not fac or not fac->getCapture() or not fac->getCapture()->getFrame())
+        return "invalid factor" + std::to_string(fac->id());
+
     factor_string = "F" + std::to_string(fac->getCapture()->getFrame()->id());
 
     // FRAME
diff --git a/src/publisher_pose.cpp b/src/publisher_pose.cpp
index aec2e21..d1ba471 100644
--- a/src/publisher_pose.cpp
+++ b/src/publisher_pose.cpp
@@ -47,7 +47,7 @@ PublisherPose::PublisherPose(const std::string& _unique_name,
 
     max_points_ = getParamWithDefault<int>(_server,
                                            prefix_ + "/max_points",
-                                           1e3);
+                                           1e4);
     line_size_  = getParamWithDefault<double>(_server,
                                               prefix_ + "/line_size",
                                               0.1);
-- 
GitLab