Skip to content

Commit 36487d1

Browse files
authored
Cleanup #3056 (#3058)
* Cleanup #3056 * Switch to PSM's waitForCurrentRobotState() * Back to StateMonitor usage and explicitly propagate state update to PlanningScene
1 parent 41613cb commit 36487d1

File tree

1 file changed

+5
-25
lines changed

1 file changed

+5
-25
lines changed

moveit_ros/moveit_servo/tests/servo_cpp_fixture.hpp

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -61,24 +61,13 @@ class ServoCppFixture : public testing::Test
6161
servo_params_ = servo_param_listener_->get_params();
6262

6363
planning_scene_monitor_ = moveit_servo::createPlanningSceneMonitor(servo_test_node_, servo_params_);
64-
65-
// Wait until the joint configuration is nonzero before starting MoveIt Servo.
66-
int num_tries = 0;
67-
const int max_tries = 20;
68-
while (true)
64+
// Wait for complete state update before starting MoveIt Servo.
65+
if (!planning_scene_monitor_->getStateMonitor()->waitForCompleteState("panda_arm", 1.0))
6966
{
70-
const auto q = getCurrentJointPositions("panda_arm");
71-
if (q.norm() > 0.0)
72-
{
73-
break;
74-
}
75-
if (num_tries > max_tries)
76-
{
77-
FAIL() << "Robot joint configuration did not reach expected state after some time. Test is flaky.";
78-
}
79-
std::this_thread::sleep_for(std::chrono::milliseconds(100));
80-
num_tries++;
67+
FAIL() << "Could not retrieve complete robot state";
8168
}
69+
// Forward state update to planning scene
70+
planning_scene_monitor_->updateSceneWithCurrentState();
8271

8372
servo_test_instance_ =
8473
std::make_shared<moveit_servo::Servo>(servo_test_node_, servo_param_listener_, planning_scene_monitor_);
@@ -91,15 +80,6 @@ class ServoCppFixture : public testing::Test
9180
return locked_scene->getCurrentState().getGlobalLinkTransform(target_frame);
9281
}
9382

94-
/// Helper function to get the joint configuration of a group.
95-
Eigen::VectorXd getCurrentJointPositions(const std::string& group_name) const
96-
{
97-
planning_scene_monitor::LockedPlanningSceneRO locked_scene(planning_scene_monitor_);
98-
std::vector<double> joint_positions;
99-
locked_scene->getCurrentState().copyJointGroupPositions(group_name, joint_positions);
100-
return Eigen::Map<Eigen::VectorXd>(joint_positions.data(), joint_positions.size());
101-
}
102-
10383
std::shared_ptr<rclcpp::Node> servo_test_node_;
10484
std::shared_ptr<const servo::ParamListener> servo_param_listener_;
10585
servo::Params servo_params_;

0 commit comments

Comments
 (0)