If MoveToMouth fails due to approaching a singularity, MoveFromMouth will also fail. This PR addresses that by adding cartesian motion as a fallback to MoveFromMouth.
Further, since cartesian motion tends to fail if the arm is tilted, this PR also removes the arm tilt at the mouth.
Finally, to help streamline the app and improve retrying actions, this PR removes the combo actions of MoveFromMouthToAbovePlate and MoveFromMouthToRestingPosition. Instead, the app will achieve the desired behavior by calling MoveFromMouth followed by either MoveAbovePlate or MoveToRestingPosition
Testing procedure
[x] Tested with feeding_web_interface#113. Do many MoveToMouth / MoveFromMouth with different distances, verify it works.
[x] Comment out the servo part of the fallback (equivalent to it failing), repeat the above, and verify that cartesian tends to succeed.
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
Motivated by
feeding_web_interface
#113.If MoveToMouth fails due to approaching a singularity, MoveFromMouth will also fail. This PR addresses that by adding cartesian motion as a fallback to MoveFromMouth.
Further, since cartesian motion tends to fail if the arm is tilted, this PR also removes the arm tilt at the mouth.
Finally, to help streamline the app and improve retrying actions, this PR removes the combo actions of
MoveFromMouthToAbovePlate
andMoveFromMouthToRestingPosition
. Instead, the app will achieve the desired behavior by callingMoveFromMouth
followed by eitherMoveAbovePlate
orMoveToRestingPosition
Testing procedure
feeding_web_interface
#113. Do many MoveToMouth / MoveFromMouth with different distances, verify it works.Before opening a pull request
python3 -m black .
ada_feeding
directory, run:pylint --recursive=y --rcfile=.pylintrc .
.Before Merging
Squash & Merge