Go to the documentation of this file.
3 #include <VirtualRobot/SceneObjectSet.h>
25 srv(srv), config(config)
42 config.
robotName, timestamp, VirtualRobot::RobotIO::RobotDescription::eStructure);
49 scn.
graph = getSceneGraph(timestamp);
69 const auto platformState =
72 <<
"Could not get a platform state for ts: " <<
VAROUT(timestamp);
75 .angular = platformState->twist.angular};
81 SceneProvider::getStaticScene(
const DateTime& timestamp)
const
90 objectMap.emplace(
object.objectID,
object);
96 const auto objectPosesStatic =
102 ARMARX_INFO << objects->getSize() <<
" objects in the scene";
119 if (
const memory::client::costmap::Reader::Result costmap =
124 return costmap.costmap.
value();
128 <<
"` from provider " << query.providerName <<
" not available yet.";
136 return {.objects = objects,
137 .objectMap = std::move(objectMap),
138 .objectInfo = std::move(objectInfo),
139 .distanceToObstaclesCostmap = costmap,
140 .locations = std::move(locations)};
144 SceneProvider::getDynamicScene(
const DateTime& timestamp)
const
146 const memory::client::human::Reader::Query queryHumans{
148 .timestamp = timestamp,
151 const memory::client::laser_scanner_features::Reader::Query queryFeatures{
154 .timestamp = timestamp};
157 .laserScannerFeatures =
162 SceneProvider::getSceneGraph(
const DateTime& )
const
std::string staticCostmapProviderName
std::optional< core::SceneGraph > graph
VirtualRobot::RobotPtr robot
ObjectPoseSeq fetchObjectPoses() const
Fetch all known object poses.
objpose::ObjectPoseClient objectPoseClient
memory::client::graph::Reader * graphReader
std::optional< PlatformState > queryPlatformState(const std::string &robotName, const armem::Time ×tamp) const
std::optional< core::StaticScene > staticScene
std::vector< ObjectPose > ObjectPoseSeq
std::vector< ObjectInfo > findAllObjects(bool checkPaths=true) const
armem::robot_state::VirtualRobotReader * virtualRobotReader
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
std::vector< std::string > primitiveApproximationModels
Result queryData(const Query &query) const
ObjectFinder objectFinder
bool synchronizeRobot(VirtualRobot::Robot &robot, const armem::Time ×tamp) const
Result query(const Query &query) const
SceneProvider(const InjectedServices &srv, const Config &config)
memory::client::laser_scanner_features::Reader * laserScannerFeaturesReader
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
HumanResult queryHumans(const Query &query) const
core::Twist platformVelocity
std::string staticCostmapName
SpamFilterDataPtr deactivateSpam(SpamFilterDataPtr const &spamFilter, float deactivationDurationSec, const std::string &identifier, bool deactivate)
std::optional< float > value(const Index &index) const
VirtualRobot::SceneObjectSetPtr asSceneObjects(const objpose::ObjectPoseSeq &objectPoses)
memory::client::human::Reader * humanReader
bool synchronize(const DateTime ×tamp, bool fullUpdate) override
const core::Scene & scene() const override
std::optional< core::DynamicScene > dynamicScene
Represents a point in time.
std::map< std::string, core::Location > locations()
std::vector< armarx::navigation::core::Graph > graphs()
armarx::navigation::human::Humans humans
std::vector< LaserScannerFeatures > features
static DateTime Now()
Current time on the virtual clock.
std::string laserScannerFeaturesProviderName
std::string humanProviderName
bool initialize(const DateTime ×tamp) override
memory::client::costmap::Reader * costmapReader
An object pose as stored by the ObjectPoseStorage.
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
objpose::ObjectPoseSeq filterObjects(objpose::ObjectPoseSeq objects, const std::vector< std::string > &datasetDisableList)
std::map< ObjectID, ObjectPose > ObjectPoseMap