Skip to content
Snippets Groups Projects
Commit 52ea5123 authored by Joaquim Casals Buñuel's avatar Joaquim Casals Buñuel
Browse files

WIP

parent b9677075
No related branches found
No related tags found
No related merge requests found
...@@ -82,9 +82,11 @@ class WolfRosNode ...@@ -82,9 +82,11 @@ class WolfRosNode
void solve(); void solve();
void solveLoop(); void solveLoop();
void broadcastTf(); void broadcastTf();
void visualize(); void visualize();
void visualizeLoop();
bool updateTf(); bool updateTf();
}; };
...@@ -179,6 +179,7 @@ void WolfRosNode::solveLoop() ...@@ -179,6 +179,7 @@ void WolfRosNode::solveLoop()
{ {
ros::Rate solverRate(1/solver_->getPeriod()); ros::Rate solverRate(1/solver_->getPeriod());
WOLF_DEBUG("Started solver loop"); WOLF_DEBUG("Started solver loop");
WOLF_TRACE("HI SOLVER");
while (ros::ok()) while (ros::ok())
{ {
...@@ -191,6 +192,27 @@ void WolfRosNode::solveLoop() ...@@ -191,6 +192,27 @@ void WolfRosNode::solveLoop()
solverRate.sleep(); solverRate.sleep();
} }
WOLF_DEBUG("Solver loop finished"); WOLF_DEBUG("Solver loop finished");
WOLF_TRACE("BYE SOLVER");
}
void WolfRosNode::visualizeLoop()
{
ros::Rate visualizerRate(1/viz_period_);
// visualize periodically
WOLF_DEBUG("Started visualize loop");
WOLF_TRACE("HI VISUALIZE");
while (ros::ok())
{
visualize();
if(ros::isShuttingDown())
break;
// relax to fit output rate
visualizerRate.sleep();
}
WOLF_DEBUG("Visualize loop finished");
WOLF_TRACE("BYE VISUALIZE");
} }
int main(int argc, char **argv) int main(int argc, char **argv)
...@@ -208,6 +230,8 @@ int main(int argc, char **argv) ...@@ -208,6 +230,8 @@ int main(int argc, char **argv)
// Solver thread // Solver thread
std::thread solver_thread(&WolfRosNode::solveLoop, &wolf_node); std::thread solver_thread(&WolfRosNode::solveLoop, &wolf_node);
// Visualizer thread
std::thread visualizer_thread(&WolfRosNode::visualizeLoop, &wolf_node);
while (ros::ok()) while (ros::ok())
{ {
...@@ -215,15 +239,6 @@ int main(int argc, char **argv) ...@@ -215,15 +239,6 @@ int main(int argc, char **argv)
wolf_node.updateTf(); wolf_node.updateTf();
wolf_node.broadcastTf(); wolf_node.broadcastTf();
// visualize periodically
auto start3 = std::chrono::high_resolution_clock::now();
if ((ros::Time::now() - last_viz_time).toSec() >= wolf_node.viz_period_)
{
std::cout << "Last Viz since/viz_period_ " << (ros::Time::now() - last_viz_time).toSec() << " / " << wolf_node.viz_period_ << std::endl;
wolf_node.visualize();
last_viz_time = ros::Time::now();
}
// publish periodically // publish periodically
for(auto pub : wolf_node.publishers_) for(auto pub : wolf_node.publishers_)
if (pub->ready()) if (pub->ready())
......
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