Go to the documentation of this file.
6 #include <VirtualRobot/SceneObjectSet.h>
7 #include <VirtualRobot/XML/RobotIO.h>
37 srv(srv), config(config)
54 config.
robotName, timestamp, VirtualRobot::RobotIO::RobotDescription::eStructure);
61 scn.
graph = getSceneGraph(timestamp);
81 const auto platformState =
84 <<
"Could not get a platform state for ts: " <<
VAROUT(timestamp);
87 .angular = platformState->twist.angular};
93 SceneProvider::getStaticScene(
const DateTime& timestamp)
const
104 objectMap.emplace(
object.objectID,
object);
111 objectPoses, {
"KIT",
"HOPE",
"MDB",
"YCB",
"Kitchen",
"Maintenance"});
114 for (
const auto& objectPose : objectPosesStatic)
122 ARMARX_INFO << objects->getSize() <<
" objects in the scene";
128 const algorithms::Costmap costmap = [&]()
133 const memory::client::costmap::Reader::Query query{
139 if (
const memory::client::costmap::Reader::Result costmap =
144 return costmap.costmap.value();
148 <<
"` from provider " << query.providerName <<
" not available yet.";
156 return {.objects = objects,
157 .objectMap = std::move(objectMap),
158 .objectInfo = std::move(objectInfo),
159 .distanceToObstaclesCostmap = costmap,
160 .locations = std::move(locations)};
164 SceneProvider::getDynamicScene(
const DateTime& timestamp)
const
166 const memory::client::human::Reader::Query queryHumans{
168 .timestamp = timestamp,
171 const memory::client::laser_scanner_features::Reader::Query queryFeatures{
174 .timestamp = timestamp};
177 .laserScannerFeatures =
182 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
objpose::ObjectPoseSeq filterObjects(objpose::ObjectPoseSeq objects, const std::vector< std::string > &datasetDisableList)
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
Synchronize both the platform pose and the joint values of a virtual robot, according to the robot st...
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)
VirtualRobot::RobotPtr getRobotWaiting(const std::string &name, const armem::Time ×tamp=armem::Time::Invalid(), const VirtualRobot::RobotIO::RobotDescription &loadMode=VirtualRobot::RobotIO::RobotDescription::eStructure)
In contrast to getRobot(), this function will retry to query the robot until it exists.
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
VirtualRobot::SceneObjectSetPtr asSceneObjects(const objpose::ObjectPoseSeq &objectPoses)
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.
std::map< ObjectID, ObjectPose > ObjectPoseMap