Skip to content

Commit

Permalink
Revert "WIP: query for multiple time intervals at once"
Browse files Browse the repository at this point in the history
This reverts commit ad6ead9.
  • Loading branch information
Mark-Niemeyer committed Nov 21, 2024
1 parent ad6ead9 commit 0eb1ac6
Show file tree
Hide file tree
Showing 14 changed files with 100 additions and 110 deletions.
11 changes: 3 additions & 8 deletions examples/python/gRPC/images/gRPC_fb_queryImages.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,9 @@ def query_images(

polygon_2d = createPolygon2D(fbb, 700, -100, vertices)

time_intervals = []
time_min = createTimeStamp(fbb, 1661336500, 0)
time_max = createTimeStamp(fbb, 1661336550, 0)
time_intervals.append(createTimeInterval(fbb, time_min, time_max))
time_min = createTimeStamp(fbb, 1661336560, 0)
time_max = createTimeStamp(fbb, 1661336600, 0)
time_intervals.append(createTimeInterval(fbb, time_min, time_max))
time_min = createTimeStamp(fbb, 1610549273, 0)
time_max = createTimeStamp(fbb, 1938549273, 0)
time_interval = createTimeInterval(fbb, time_min, time_max)

project_uuids = [project_uuid]

Expand All @@ -120,7 +116,6 @@ def query_images(
fbb,
grpc_channel,
project_uuid,
timeIntervals=time_intervals,
# polygon2d=polygon_2d,
polygon2dSensorPos=polygon_2d,
labels=labelsCategory,
Expand Down
3 changes: 1 addition & 2 deletions seerep_msgs/core/query.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ struct Query
// polygon defined above
bool inMapFrame; // if false the query polygon is in geodetic coordinates,
// otherwise in map frame
std::optional<std::vector<Timeinterval>>
timeintervals; ///< only do temporal query if set
std::optional<Timeinterval> timeinterval; ///< only do temporal query if set
std::optional<std::unordered_map<std::string, std::vector<std::string>>>
label; ///< only do semantic query if set
std::optional<SparqlQuery>
Expand Down
2 changes: 1 addition & 1 deletion seerep_msgs/fbs/query.fbs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ table Query {
polygonSensorPosition:Polygon2D;
fullyEncapsulated:bool;
inMapFrame:bool;
timeintervals:[TimeInterval];
timeinterval:TimeInterval;
label:[LabelCategory];
sparqlQuery:SparqlQuery;
ontologyURI:string;
Expand Down
2 changes: 1 addition & 1 deletion seerep_msgs/protos/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ message Query
Polygon2D polygon = 1;
bool fullyEncapsulated = 2;
bool inMapFrame = 3;
repeated TimeInterval timeintervals = 4;
TimeInterval timeinterval = 4;
repeated LabelCategory labelCategory = 5;
bool mustHaveAllLabels = 6;
repeated string projectuuid = 7;
Expand Down
29 changes: 13 additions & 16 deletions seerep_srv/seerep_core/src/core_dataset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ CoreDataset::getData(const seerep_core_msgs::Query& query)
}
}

if (!query.polygon && !query.polygonSensorPos && !query.timeintervals &&
if (!query.polygon && !query.polygonSensorPos && !query.timeinterval &&
!query.label && !query.instances && !query.dataUuids)
{
return getAllDatasetUuids(datatypeSpecifics, query.sortByTime);
Expand Down Expand Up @@ -335,24 +335,21 @@ std::optional<std::vector<seerep_core_msgs::AabbTimeIdPair>>
CoreDataset::queryTemporal(std::shared_ptr<DatatypeSpecifics> datatypeSpecifics,
const seerep_core_msgs::Query& query)
{
if (query.timeintervals)
if (query.timeinterval)
{
std::optional<std::vector<seerep_core_msgs::AabbTimeIdPair>> timetree_result =
std::vector<seerep_core_msgs::AabbTimeIdPair>();
for (auto timeinterval : query.timeintervals.value())
{
seerep_core_msgs::AabbTime aabbtime(
seerep_core_msgs::TimePoint(((int64_t)timeinterval.timeMin.seconds)
<< 32 |
((uint64_t)timeinterval.timeMin.nanos)),
seerep_core_msgs::TimePoint(((int64_t)timeinterval.timeMax.seconds)
<< 32 |
((uint64_t)timeinterval.timeMax.nanos)));

datatypeSpecifics->timetree.query(
boost::geometry::index::intersects(aabbtime),
std::back_inserter(timetree_result.value()));
}
seerep_core_msgs::AabbTime aabbtime(
seerep_core_msgs::TimePoint(
((int64_t)query.timeinterval.value().timeMin.seconds) << 32 |
((uint64_t)query.timeinterval.value().timeMin.nanos)),
seerep_core_msgs::TimePoint(
((int64_t)query.timeinterval.value().timeMax.seconds) << 32 |
((uint64_t)query.timeinterval.value().timeMax.nanos)));

datatypeSpecifics->timetree.query(
boost::geometry::index::intersects(aabbtime),
std::back_inserter(timetree_result.value()));
return timetree_result;
}
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,9 +262,9 @@ class CoreFbConversion
* @param query the flatbuffer query message
* @param queryCoreTime the time in the query message in seerep core format
*/
static void fromFbQueryTime(
const seerep::fb::Query* query,
std::optional<std::vector<seerep_core_msgs::Timeinterval>>& queryCoreTime);
static void
fromFbQueryTime(const seerep::fb::Query* query,
std::optional<seerep_core_msgs::Timeinterval>& queryCoreTime);
/**
* @brief extracts the WithoutData Flag of the flatbuffer query message
* @param query the flatbuffer query message
Expand Down
30 changes: 14 additions & 16 deletions seerep_srv/seerep_core_fb/src/core_fb_conversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ CoreFbConversion::fromFb(const seerep::fb::Query* query,
seerep_core_msgs::Query queryCore;
queryCore.header.datatype = datatype;

fromFbQueryTime(query, queryCore.timeintervals);
fromFbQueryTime(query, queryCore.timeinterval);
fromFbQueryLabel(query, queryCore.label);
queryCore.sparqlQuery = fromFbSparqlQuery(query);
queryCore.ontologyURI = fromFbOntologyURI(query);
Expand Down Expand Up @@ -520,21 +520,19 @@ void CoreFbConversion::fromFbQueryLabel(

void CoreFbConversion::fromFbQueryTime(
const seerep::fb::Query* query,
std::optional<std::vector<seerep_core_msgs::Timeinterval>>& queryCoreTimes)
{
if (flatbuffers::IsFieldPresent(query, seerep::fb::Query::VT_TIMEINTERVALS))
{
queryCoreTimes = std::vector<seerep_core_msgs::Timeinterval>();
for (auto&& timeinterval : *query->timeintervals())
{
seerep_core_msgs::Timeinterval queryCoreTime =
seerep_core_msgs::Timeinterval();
queryCoreTime.timeMin.seconds = timeinterval->time_min()->seconds();
queryCoreTime.timeMax.seconds = timeinterval->time_max()->seconds();
queryCoreTime.timeMin.nanos = timeinterval->time_min()->nanos();
queryCoreTime.timeMax.nanos = timeinterval->time_max()->nanos();
queryCoreTimes.value().push_back(queryCoreTime);
}
std::optional<seerep_core_msgs::Timeinterval>& queryCoreTime)
{
if (flatbuffers::IsFieldPresent(query, seerep::fb::Query::VT_TIMEINTERVAL))
{
queryCoreTime = seerep_core_msgs::Timeinterval();
queryCoreTime.value().timeMin.seconds =
query->timeinterval()->time_min()->seconds();
queryCoreTime.value().timeMax.seconds =
query->timeinterval()->time_max()->seconds();
queryCoreTime.value().timeMin.nanos =
query->timeinterval()->time_min()->nanos();
queryCoreTime.value().timeMax.nanos =
query->timeinterval()->time_max()->nanos();
}
}

Expand Down
26 changes: 10 additions & 16 deletions seerep_srv/seerep_core_pb/src/core_pb_conversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -324,23 +324,17 @@ void CorePbConversion::fromPbLabel(const seerep::pb::Query& query,
void CorePbConversion::fromPbTime(const seerep::pb::Query& query,
seerep_core_msgs::Query& queryCore)
{
if (query.timeintervals_size() > 0)
if (query.timeinterval().has_time_min() && query.timeinterval().has_time_max())
{
queryCore.timeintervals = std::vector<seerep_core_msgs::Timeinterval>();
for (auto&& timeinterval : query.timeintervals())
{
if (timeinterval.has_time_min() && timeinterval.has_time_max())
{
seerep_core_msgs::Timeinterval queryCoreTime =
seerep_core_msgs::Timeinterval();
queryCoreTime.timeMin.seconds = timeinterval.time_min().seconds();
queryCoreTime.timeMax.seconds = timeinterval.time_max().seconds();
queryCoreTime.timeMin.nanos = timeinterval.time_min().nanos();
queryCoreTime.timeMax.nanos = timeinterval.time_max().nanos();

queryCore.timeintervals.value().push_back(queryCoreTime);
}
}
queryCore.timeinterval = seerep_core_msgs::Timeinterval();
queryCore.timeinterval.value().timeMin.seconds =
query.timeinterval().time_min().seconds();
queryCore.timeinterval.value().timeMax.seconds =
query.timeinterval().time_max().seconds();
queryCore.timeinterval.value().timeMin.nanos =
query.timeinterval().time_min().nanos();
queryCore.timeinterval.value().timeMax.nanos =
query.timeinterval().time_max().nanos();
}
}

Expand Down
18 changes: 8 additions & 10 deletions seerep_srv/seerep_server/src/fb_image_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ grpc::Status FbImageService::GetImage(
debuginfo << "sending images with this query parameters:";
if (requestRoot->polygon() != NULL)
{
for (auto&& point : *requestRoot->polygon()->vertices())
for (auto point : *requestRoot->polygon()->vertices())
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
Expand All @@ -30,7 +30,7 @@ grpc::Status FbImageService::GetImage(
}
if (requestRoot->polygonSensorPosition() != NULL)
{
for (auto&& point : *(requestRoot->polygonSensorPosition()->vertices()))
for (auto point : *(requestRoot->polygonSensorPosition()->vertices()))
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
Expand All @@ -40,21 +40,19 @@ grpc::Status FbImageService::GetImage(
debuginfo << "bounding box height "
<< requestRoot->polygonSensorPosition()->height() << " /";
}
if (requestRoot->timeintervals() != NULL)
if (requestRoot->timeinterval() != NULL)
{
for (auto&& timeinterval : *requestRoot->timeintervals())
{
debuginfo << "\n time interval (" << timeinterval->time_min()->seconds()
<< "/" << timeinterval->time_max()->seconds() << ")";
}
debuginfo << "\n time interval ("
<< requestRoot->timeinterval()->time_min()->seconds() << "/"
<< requestRoot->timeinterval()->time_max()->seconds() << ")";
}
if (requestRoot->label() != NULL)
{
debuginfo << "\n labels general";
for (auto&& labelCategory : *requestRoot->label())
for (auto labelCategory : *requestRoot->label())
{
debuginfo << "category: " << labelCategory->category()->c_str() << "; ";
for (auto&& label : *labelCategory->labels())
for (auto label : *labelCategory->labels())
{
debuginfo << "'" << label->label()->str() << "' ";
}
Expand Down
19 changes: 9 additions & 10 deletions seerep_srv/seerep_server/src/fb_point_cloud_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ grpc::Status FbPointCloudService::GetPointCloud2(
debuginfo << "sending point clouds with this query parameters: ";
if (requestRoot->polygon() != NULL)
{
for (auto&& point : *requestRoot->polygon()->vertices())
for (auto point : *requestRoot->polygon()->vertices())
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
Expand All @@ -35,7 +35,7 @@ grpc::Status FbPointCloudService::GetPointCloud2(
}
if (requestRoot->polygonSensorPosition() != NULL)
{
for (auto&& point : *(requestRoot->polygonSensorPosition()->vertices()))
for (auto point : *(requestRoot->polygonSensorPosition()->vertices()))
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
Expand All @@ -45,21 +45,20 @@ grpc::Status FbPointCloudService::GetPointCloud2(
debuginfo << "bounding box height "
<< requestRoot->polygonSensorPosition()->height() << " /";
}
if (requestRoot->timeintervals() != NULL)
if (requestRoot->timeinterval() != NULL)
{
for (auto&& timeinterval : *requestRoot->timeintervals())
{
debuginfo << "\n time interval (" << timeinterval->time_min()->seconds()
<< "/" << timeinterval->time_max()->seconds() << ")";
}
debuginfo << "\n time interval (seconds since epoch: "
<< requestRoot->timeinterval()->time_min()->seconds()
<< ", nanoseconds since epoch:"
<< requestRoot->timeinterval()->time_max()->seconds() << ")";
}
if (requestRoot->label() != NULL)
{
debuginfo << "\n labels general";
for (auto&& labelCategory : *requestRoot->label())
for (auto labelCategory : *requestRoot->label())
{
debuginfo << "category: " << labelCategory->category()->c_str() << "; ";
for (auto&& label : *labelCategory->labels())
for (auto label : *labelCategory->labels())
{
debuginfo << "'" << label->label()->str() << "' ";
}
Expand Down
36 changes: 26 additions & 10 deletions seerep_srv/seerep_server/src/fb_point_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ grpc::Status FbPointService::GetPoint(
debuginfo << "sending images with this query parameters:";
if (requestRoot->polygon() != NULL)
{
for (auto&& point : *requestRoot->polygon()->vertices())
for (auto point : *requestRoot->polygon()->vertices())
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") \n";
Expand All @@ -31,7 +31,7 @@ grpc::Status FbPointService::GetPoint(
}
if (requestRoot->polygonSensorPosition() != NULL)
{
for (auto&& point : *(requestRoot->polygonSensorPosition()->vertices()))
for (auto point : *(requestRoot->polygonSensorPosition()->vertices()))
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
Expand All @@ -41,21 +41,19 @@ grpc::Status FbPointService::GetPoint(
debuginfo << "bounding box height "
<< requestRoot->polygonSensorPosition()->height() << " /";
}
if (requestRoot->timeintervals() != NULL)
if (requestRoot->timeinterval() != NULL)
{
for (auto&& timeinterval : *requestRoot->timeintervals())
{
debuginfo << "\n time interval (" << timeinterval->time_min()->seconds()
<< "/" << timeinterval->time_max()->seconds() << ")";
}
debuginfo << "\n time interval ("
<< requestRoot->timeinterval()->time_min()->seconds() << "/"
<< requestRoot->timeinterval()->time_max()->seconds() << ")";
}
if (requestRoot->label() != NULL)
{
debuginfo << "\n labels general";
for (auto&& labelCategory : *requestRoot->label())
for (auto labelCategory : *requestRoot->label())
{
debuginfo << "category: " << labelCategory->category()->c_str() << "; ";
for (auto&& label : *labelCategory->labels())
for (auto label : *labelCategory->labels())
{
debuginfo << "'" << label->label()->str() << "' ";
}
Expand All @@ -65,6 +63,24 @@ grpc::Status FbPointService::GetPoint(
BOOST_LOG_SEV(m_logger, boost::log::trivial::severity_level::info)
<< debuginfo.rdbuf();

if (requestRoot->polygon() != NULL)
{
for (auto point : *(requestRoot->polygon()->vertices()))
{
debuginfo << "bounding box vertex (" << point->x() << ", " << point->y()
<< ") /";
}
debuginfo << "bounding box z " << requestRoot->polygon()->z() << " /";
debuginfo << "bounding box height " << requestRoot->polygon()->height()
<< " /";
}
if (requestRoot->timeinterval() != NULL)
{
BOOST_LOG_SEV(m_logger, boost::log::trivial::severity_level::trace)
<< "in time interval ("
<< requestRoot->timeinterval()->time_min()->seconds() << "/"
<< requestRoot->timeinterval()->time_max()->seconds() << ")";
}
try
{
pointFb->getData(requestRoot, writer);
Expand Down
13 changes: 5 additions & 8 deletions seerep_srv/seerep_server/src/pb_image_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,12 @@ PbImageService::GetImage(grpc::ServerContext* context,
{
(void)context; // ignore that variable without causing warnings
// print time bound to debug log
for (auto&& timeinterval : request->timeintervals())
{
BOOST_LOG_SEV(m_logger, boost::log::trivial::severity_level::debug)
<< "sending point cloud in time interval ("
<< timeinterval.time_min().seconds() << "/"
<< timeinterval.time_max().seconds() << ")";
}
BOOST_LOG_SEV(m_logger, boost::log::trivial::severity_level::debug)
<< "sending point cloud in time interval ("
<< request->timeinterval().time_min().seconds() << "/"
<< request->timeinterval().time_max().seconds() << ")";
// print polygon vertices to debug log
for (auto&& point : request->polygon().vertices())
for (auto point : request->polygon().vertices())
{
BOOST_LOG_SEV(m_logger, boost::log::trivial::severity_level::debug)
<< "bounding box vertex (" << point.x() << ", " << point.y() << ") /";
Expand Down
2 changes: 1 addition & 1 deletion seerep_srv/seerep_server/src/pb_meta_operations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ PbMetaOperations::GetProjects(grpc::ServerContext* context,
{
auto projectInfos = seerepCore->getProjects();

for (auto&& projectInfo : projectInfos)
for (auto projectInfo : projectInfos)
{
auto responseProjectInfo = response->add_projects();
responseProjectInfo->set_name(projectInfo.name);
Expand Down
Loading

0 comments on commit 0eb1ac6

Please sign in to comment.