Skip to content
Snippets Groups Projects
Commit 1cbfbbcc authored by Florian Walch's avatar Florian Walch
Browse files

gripper_action: Don't move if command position has already been reached

parent 2e7d38f5
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,8 @@ void gripperCommandExecuteCallback(
double default_speed,
actionlib::SimpleActionServer<control_msgs::GripperCommandAction>* action_server,
const control_msgs::GripperCommandGoalConstPtr& goal) {
constexpr double kSamePositionThreshold = 1e-4;
std::function<bool()> gripper_command_handler = [=, &gripper]() {
franka::GripperState state = gripper.readOnce();
if (goal->command.position > state.max_width || goal->command.position < 0.0) {
......@@ -40,6 +42,9 @@ void gripperCommandExecuteCallback(
<< state.max_width << " command = " << goal->command.position);
return false;
}
if (std::abs(goal->command.position - state.width) < kSamePositionThreshold) {
return true;
}
if (goal->command.position >= state.width) {
return gripper.move(goal->command.position, default_speed);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment