Skip to content

Bugfix/dropped commands#103

Open
hello-jackson wants to merge 8 commits intonoeticfrom
bugfix/dropped-commands
Open

Bugfix/dropped commands#103
hello-jackson wants to merge 8 commits intonoeticfrom
bugfix/dropped-commands

Conversation

@hello-jackson
Copy link
Copy Markdown

This fix addresses a bug that occurs when the joint_trajectory_server interprets a FollowJointTrajectoryGoal where all trajectory points are already within the acceptable_joint_error threshold and then within 1/80th of a second attempts to interpret another FollowJointTrajectoryGoal. The second call of execute_cb() calls the robot.push_command() method at a frequency higher then 80 hz resulting in a dropped motor command. This dropped motor command causes the joint_trajectory_server to find it's goals unreachable until the default_goal_timeout_duration of 10.0 seconds is reached.

In this fix the init_execution() method of each command group now returns a boolean value indicating if a subsequent call to robot.push_command() is appropriate. If at least one of commanded joints returns true (and thusly it can be inferred that joint will take time to move) robot.push_command() is called. The command groups controlling Dynamixel servos will always return false if active because they never require a push_command() call.

This bug can be recreated on the dev/noetic branch with this gist but not on the bugfix/dropped-commands branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant