45using warehouse_ros::Metadata;
46using warehouse_ros::Query;
50 , logger_(
moveit::
getLogger(
"moveit.ros.warehouse_planning_scene_world_storage"))
55void moveit_warehouse::PlanningSceneWorldStorage::createCollections()
57 planning_scene_world_collection_ =
58 conn_->openCollectionPtr<moveit_msgs::msg::PlanningSceneWorld>(DATABASE_NAME,
"planning_scene_worlds");
63 planning_scene_world_collection_.reset();
69 const std::string& name)
77 Metadata::Ptr metadata = planning_scene_world_collection_->createMetadata();
79 planning_scene_world_collection_->insert(msg, metadata);
80 RCLCPP_DEBUG(logger_,
"%s planning scene world '%s'", replace ?
"Replaced" :
"Added", name.c_str());
85 Query::Ptr q = planning_scene_world_collection_->createQuery();
87 std::vector<PlanningSceneWorldWithMetadata> psw = planning_scene_world_collection_->queryList(q,
true);
92 std::vector<std::string>& names)
const
101 Query::Ptr q = planning_scene_world_collection_->createQuery();
102 std::vector<PlanningSceneWorldWithMetadata> planning_scene_worlds =
112 const std::string& name)
const
114 Query::Ptr q = planning_scene_world_collection_->createQuery();
116 std::vector<PlanningSceneWorldWithMetadata> psw = planning_scene_world_collection_->queryList(q,
false);
129 const std::string& new_name)
131 Query::Ptr q = planning_scene_world_collection_->createQuery();
133 Metadata::Ptr m = planning_scene_world_collection_->createMetadata();
135 planning_scene_world_collection_->modifyMetadata(q, m);
136 RCLCPP_DEBUG(logger_,
"Renamed planning scene world from '%s' to '%s'", old_name.c_str(), new_name.c_str());
141 Query::Ptr q = planning_scene_world_collection_->createQuery();
143 unsigned int rem = planning_scene_world_collection_->removeMessages(q);
144 RCLCPP_DEBUG(logger_,
"Removed %u PlanningSceneWorld messages (named '%s')", rem, name.c_str());
warehouse_ros::DatabaseConnection::Ptr conn_
void filterNames(const std::string ®ex, std::vector< std::string > &names) const
Keep only the names that match regex.
MoveItMessageStorage(warehouse_ros::DatabaseConnection::Ptr conn)
Takes a warehouse_ros DatabaseConnection. The DatabaseConnection is expected to have already been ini...
void getKnownPlanningSceneWorlds(std::vector< std::string > &names) const
bool hasPlanningSceneWorld(const std::string &name) const
void renamePlanningSceneWorld(const std::string &old_name, const std::string &new_name)
bool getPlanningSceneWorld(PlanningSceneWorldWithMetadata &msg_m, const std::string &name) const
Get the constraints named name. Return false on failure.
void removePlanningSceneWorld(const std::string &name)
static const std::string DATABASE_NAME
static const std::string PLANNING_SCENE_WORLD_ID_NAME
PlanningSceneWorldStorage(warehouse_ros::DatabaseConnection::Ptr conn)
void addPlanningSceneWorld(const moveit_msgs::msg::PlanningSceneWorld &msg, const std::string &name)
warehouse_ros::MessageWithMetadata< moveit_msgs::msg::PlanningSceneWorld >::ConstPtr PlanningSceneWorldWithMetadata
Main namespace for MoveIt.
rclcpp::Logger getLogger()