This PR contains multiple small changes from the 1-16 user study. Each change has separate testing, so we document testing right below the change.
Make acquisition use the most recent TF transform from the camera to the world, not the one at the mask timestamp (since sometimes that is too new).
Before, compute food frame was often failing due to a TF lookup timeout. After this change, it stopped failing. (Note, this is a silent failure. We should consider logging in this case.)
Speed up the arm. I moved all kinematic motions from 60% to 100%, and all transfer-related servo motions from 0.1 m/2 to 0.12 m/2.
Tested it, verified that it was faster and didn't feel scary.
Add relaxed tolerance constraints to bite transfer. If the user leans forward, the arm might get to their mouth, but think it fails due to a collision. Thus, although the robot arm will keep moving until it reaches the initial tolerance (0.5cm), it will still succeed if it is within a relaxed tolerance (2.5cm)
Verified that it failed if we added a collision too far, but didn't if we added a collision close.
Make MoveToMouth clear octomap by default to avoid phantom collisions. It should have enough time to repopulate the octomap.
Verify that MoveToMouth still works.
Before opening a pull request
[x] Format your code using black formatterpython3 -m black .
[x] Run your code through pylint and address all warnings/errors. The only warnings that are acceptable to not address is TODOs that should be addressed in a future PR. From the top-level ada_feeding directory, run: pylint --recursive=y --rcfile=.pylintrc ..
Description
This PR contains multiple small changes from the 1-16 user study. Each change has separate testing, so we document testing right below the change.
Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge