Skip to content
Snippets Groups Projects
Commit 13005706 authored by Fabian Reister's avatar Fabian Reister
Browse files

introducing mutexes for scene

parent 72fdde7f
No related branches found
No related tags found
1 merge request!9Fix/update scene before planning
...@@ -145,10 +145,7 @@ namespace armarx::navigation::components ...@@ -145,10 +145,7 @@ namespace armarx::navigation::components
// initialize scene // initialize scene
ARMARX_TRACE; ARMARX_TRACE;
scene.robot = getRobot(); updateContext();
scene.staticScene = staticScene();
scene.graph = core::SceneGraph{.subgraphs = graphReader.graphs()};
executor = server::PlatformUnitExecutor(platformUnit); executor = server::PlatformUnitExecutor(platformUnit);
...@@ -215,9 +212,17 @@ namespace armarx::navigation::components ...@@ -215,9 +212,17 @@ namespace armarx::navigation::components
ARMARX_TRACE; ARMARX_TRACE;
scene.robot = getRobot(); scene.robot = getRobot();
scene.staticScene = staticScene();
{
std::lock_guard g{scene.staticSceneMtx};
scene.staticScene = staticScene();
}
// TODO dynamic scene // TODO dynamic scene
scene.graph = core::SceneGraph{.subgraphs = graphReader.graphs()}; {
std::lock_guard g{scene.graphMtx};
scene.graph = core::SceneGraph{.subgraphs = graphReader.graphs()};
}
} }
std::string std::string
......
...@@ -78,7 +78,10 @@ namespace armarx::navigation::core ...@@ -78,7 +78,10 @@ namespace armarx::navigation::core
struct Scene struct Scene
{ {
mutable std::mutex staticSceneMtx;
std::optional<core::StaticScene> staticScene = std::nullopt; std::optional<core::StaticScene> staticScene = std::nullopt;
mutable std::mutex dynamicSceneMtx;
std::optional<core::DynamicScene> dynamicScene = std::nullopt; std::optional<core::DynamicScene> dynamicScene = std::nullopt;
// TopologicMapPtr topologicMap; // TopologicMapPtr topologicMap;
VirtualRobot::RobotPtr robot; VirtualRobot::RobotPtr robot;
...@@ -86,6 +89,7 @@ namespace armarx::navigation::core ...@@ -86,6 +89,7 @@ namespace armarx::navigation::core
mutable std::mutex platformVelocityMtx; mutable std::mutex platformVelocityMtx;
std::optional<core::Twist> platformVelocity; std::optional<core::Twist> platformVelocity;
mutable std::mutex graphMtx;
std::optional<core::SceneGraph> graph; std::optional<core::SceneGraph> graph;
TimeServerInterface* timeServer; TimeServerInterface* timeServer;
......
#include "AStar.h" #include "AStar.h"
#include <algorithm> #include <algorithm>
#include <mutex>
#include <optional> #include <optional>
#include <Eigen/Geometry> #include <Eigen/Geometry>
...@@ -112,6 +113,7 @@ namespace armarx::navigation::glob_plan ...@@ -112,6 +113,7 @@ namespace armarx::navigation::glob_plan
{ {
ARMARX_TRACE; ARMARX_TRACE;
std::lock_guard g{scene.staticSceneMtx};
algorithm::astar::AStarPlanner planner(scene.robot, scene.staticScene->objects, 100.F); algorithm::astar::AStarPlanner planner(scene.robot, scene.staticScene->objects, 100.F);
// planner.setRobotColModel("Platform-colmodel"); // planner.setRobotColModel("Platform-colmodel");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment