Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/dropped commands #103

Open
wants to merge 8 commits into
base: noetic
Choose a base branch
from
Open

Conversation

hello-jackson
Copy link

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